在ubuntu中进行身份validation

我在Ubuntu 12.10中有管理员权限但是当我尝试安装一些应用程序Ubuntu需要validation时,我写了我的密码,但不起作用

有人可以帮帮我吗?

有几件事要尝试。

1.确保未启用Caps Lock

如果您要从数字键盘输入数字,请确保数字锁定已打开且鼠标键未打开,除非您想要它。

2.确保使用正确的键盘布局。

对于经常在不同语言设置之间切换的人来说,这通常只是一个问题。 如果您在安装后没有刻意更改键盘布局,则不太可能适用于您。

但是有一个相关的问题可以适用:

3.如果您使用的键盘布局包含来自英语国家的人可能会发现exception的字符…

…然后有些错误可能导致密码无法正确接收和validation。

如果您可以更改键盘布局并仍然输入密码,请尝试使用。 否则,请参阅下文。

4.尝试重置密码。

有时可以通过这样做解决问题的多种原因。

这个问题解释了如何。

重置密码时,请确保密码长度至少为一个字符。 (当然,为了安全起见,它应该更长。但是空白/空密码有时会触发错误。因此,为了解决这个问题,特别重要的是,它不是完全空白的。当然,如果它是最好的话,它仍然是最好的。一个好的,强大的密码。)

如果出现与非英语符号解释相关的错误,您可以尝试使用仅包含拉丁语(“英语”)字符,数字和/或常用的国际标点符号的密码。

有一种更简单的方法来更改密码,这种方法通常不适用,但可能适用于您的特定情况。 软件中心使用PolicyKit以图形方式进行身份validation。 您可以尝试从命令行非图形地更改密码。 如果要尝试此操作,请按Ctrl + Alt + T打开终端窗口。 然后运行:

passwd 

这将让您尝试更改密码。 您必须输入旧密码,然后输入新密码两次。 在终端中,当您输入密码时,您将看不到像*这样的占位符字符。 看起来好像什么都没发生。 那是正常的; 只需键入每个密码,然后按Enter键。

如果失败,或者它似乎成功但仍无法在软件中心成功进行身份validation,您可以尝试:

 sudo passwd $USER 

确保包含$USER 。 不要用任何东西替换它,只需按原样键入即可。 它会自动代表您的用户名。 (这与上述命令的不同之处在于,它尝试以root身份validation您 ,然后以root身份更改您的密码。有时候,在其他方法失败的情况下成功。有时。)

如果这些都不起作用,您将不得不尝试以其中一种方式更改密码。 如果你愿意,你可以跳过那个。

如果您无法完成任何更改密码或获取错误消息的技术,请尝试这种方式 。 (如果您能够成功更改密码但软件中心仍然不会对您进行身份validation,那么该方法不太可能产生任何更好的结果。)

5.我提到软件中心使用PolicyKit进行身份validation。 也许这就是破碎的。

要查看,请尝试在终端中运行此命令( Ctrl + Alt + T ):

 sudo echo success 

您必须输入密码(不要担心在输入密码时屏幕上没有任何内容),然后按Enter键

如果该命令在终端中输出success ,那么您可以使用sudo 以root身份运行命令 。 然后,您应该将该信息添加到您的答案中,并告诉我们您正在运行的Ubuntu的风格(常规Ubuntu,Kubuntu,Xubuntu,Lubuntu等)。 您还应该向我们提供这些命令的输出:

 ps aux | grep [p]olkit pkcheck --action-id org.freedesktop.systemtoolsbackends.set --allow-user-interaction --process $(pidof -s bash) 

并且还请描述除了在终端上出现的文本之外,当您运行第二个命令时会发生什么。 它可能没什么,但通常你会得到一个图形validation对话框,然后是文本输出。

第二个命令测试PolicyKit是否正在进行身份validation。 ( 米兰Bouchet-Valat值得称赞该命令的一般forms;请参阅此错误中的评论。)

其他有类似问题并且正在阅读此内容的人可以创建一个新问题并包含这些结果(或者将这些结果添加到您的问题中,如果您已经为问题创建了一个)。

6.您可以使用sudogksu / gksudo作为解决方法。

如果sudo echo success (见上文),那么无论后续命令的输出如何,这都意味着sudo正在工作。

在Ubuntu软件工作方式的背景下, sudo不能完全取代PolicyKit。 但它主要可以替代它,因为许多使用PolicyKit执行管理任务的程序在使用sudo运行时也会起作用。

对于图形程序, 您应该使用gksudo而不是普通的sudo 。 尝试:

 gksudo software-center 

如果你没有 gksudo ,那么你可以安装它。 它由gksu包提供。 如果软件中心不起作用,则无法在软件中心中安装它,但您可以在命令行上安装它:

 sudo apt-get update && sudo apt-get install gksu 

您也可以安装其他软件,作为能够使用软件中心的解决方法。

如果您不想安装gksudo或它不起作用,您可以安全地使用sudo -Hsudo -i尝试以root身份运行图形应用程序:

 sudo -H software-center 
 sudo -i software-center 

如果sudo apt-get ...适用于安装软件,但是您无法通过使用gksudosudo -Hsudo -i运行软件中心,那么您可以安装另一个图形包浏览和安装/卸载程序:突触。

 sudo apt-get update # you can omit this if you've run it very recently sudo apt-get install synaptic 

我最近解决软件中心问题的一些经验告诉我,即使在软件中心无法执行此操作的情况下,Synaptic也可以成功运行。 这真是一个猜测; 我可能弄错了。 如果您无法运行软件中心,那么值得一试。

 gksudo synaptic 
 sudo -H synaptic 
 sudo -i synaptic 

7.如果sudo不起作用,也许你不是管理员。

如果您能够运行sudo echo success并在输入命令的下方控制台中打印success ,那么您就是管理员。 (或者你有特殊权限以root身份运行echo命令,这是不太可能的。)

但如果失败了,最有可能(但不仅仅是)原因是你不是真正的管理员。 有时用户会意外删除自己的行政权力。 并且可能存在导致此问题的错误(可能……)。

要检查您是否是管理员,请运行:

 groups 

你正在运行Ubuntu 12.10。 在Ubuntu 12.04及更高版本(包括12.10)中,管理员是sudo组的成员。 那么,看看sudo是否列在groups的输出中。

如果未列出,则使用这些技术之一将您自己添加为管理员 。

  • 如果它们不起作用,那么你可以使用这种更复杂的技术 。 当您进入步骤9时,请使用“另外,如果您想让用户成为管理员”部分。

如果列出了sudo ,则可能存在一些错误配置,导致sudo组的成员被识别为管理员。 在这种情况下, 进入恢复模式并检查文件/etc/sudoers

  • 如果您无法进入恢复模式,那么您可以执行此过程的前7个步骤(以sudo mount /dev/sda1 /mnt结尾, sudo mount /dev/sda1 /mnt替换为已安装的Ubuntu系统的根分区,该过程将解释如何找到)。

    然后检查文件/mnt/etc/sudoers 。 (您可以从实时系统中的图形文件浏览器或命令cat /mnt/etc/sudoers 。)

该文件应包含:

 # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL 

特别是,在以%sudo开头的行的开头应该有#符号。 (这会使它成为评论,即被Ubuntu忽略。)

如果它丢失或以#开头,您可以通过运行以下命令编辑文件来修复它:

 visudo 

你不应该在没有visudo的情况下编辑文件,因为visudo可以防止你以严重的方式弄乱它并导致更多的问题。 (您仍然可以创建一个错误的配置,但是通过检查良好的语法,它可以防止您创建一个含糊不清或无意义的配置。)

  • 在恢复模式下,您通常必须先运行此操作才能对系统进行更改:

     mount -o remount,rw / 

    因此要么在visudo之前运行,要么运行visudo并且无法保存更改,那么运行mount命令并再次尝试visudo

  • 如果你是通过现场CD / DVD / USB进行此操作, 请不要运行普通的visudo ,因为这样做不会做你想要的。 这将编辑实时系统的配置。 此外,与恢复模式不同,在Live CD上,您必须使用sudo以root身份运行命令。 所以,运行:

     sudo visudo -f /mnt/etc/sudoers 

    在现场CD上,如果你正确地执行了第7步 ,你就不需要再运行任何mount命令了(如果你确实运行了mount -o remount命令,它就不会做你想要的,因为它会尝试重新安装实时环境的文件系统,而不是已安装的操作系统的文件系统)。

8.也许您的sudoers文件以不太常见的方式配置错误。

如果您在sudo组中并且%sudo ALL=(ALL:ALL) ALL行存在并且在您的sudoers文件中未注释(参见上文),那么该文件中的某些配置错误仍可能导致该问题。

例如,之后可能存在exception(部分或完全撤消%sudo行)。

因此,如果你在sudo组,但sudo echo success在正常启动到已安装的系统(即不是现场CD / DVD / USB,而不是恢复模式)运行时不起作用,请向我们提供完整和准确的信息/etc/sudoers文件的内容。

您可以将其添加到您的问题中。

对于遇到类似问题的其他人,您可以将其添加到您自己的问题中。