在 ubuntu 中验证

在 ubuntu 中验证

我在 Ubuntu 12.10 中拥有管理员权限,但当我尝试安装某些应用程序时,Ubuntu 需要身份验证,我输入了密码,但没有用

有人能帮助我吗?

答案1

有几件事可以尝试。

1. 确保Caps Lock没有打开。

如果你要从数字键盘输入数字,请确保Number Lock已打开并且鼠标键除非您愿意,否则不会打开。

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

这通常只会出现在频繁切换不同语言设置的用户身上。如果您在安装后没有刻意更改键盘布局,则这种情况不太可能发生在您身上。

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

3. 如果您使用的键盘布局包含英语国家的人可能觉得不常见的字符......

...那么有可能是因为某些错误导致密码无法被正确接收和验证。

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

4.尝试重置您的密码。

导致该问题的原因有多种,有时可以通过这样做来解决。

这个问题解释了如何。

重置密码时,请确保密码长度至少为一个字符。(当然,出于安全考虑,密码应该更长。但空白/空密码有时会引发错误。因此,为了解决此问题,尤其重要的是不要让密码完全空白。当然,最好还是设置一个好的、强密码。)

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

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

passwd

这将允许您尝试更改密码。您必须输入旧密码,然后输入两次新密码。在终端中,您不会看到任何占位符,就像*输入密码时一样。看起来什么都没有发生。这是正常的;只需输入每个密码并按回车键即可。

如果失败,或者看似成功但您仍然无法在软件中心成功验证身份,您可以尝试:

sudo passwd $USER

确保包含$USER。不要用任何东西替换它,只需按原样输入即可。它会自动代表您的用户名。(这与上面的命令不同,因为它会尝试验证您为 root然后以 root 身份更改密码。有时这种方法会成功,而其他方法则失败。有时。)

如果上述方法都不起作用,你必须尝试更改密码其中一种方法。如果您愿意,您可以直接跳到那里。

如果您无法完成任何更改密码的技术,或收到错误消息,请尝试这边走(如果您能够成功更改密码,但软件中心仍然无法验证您的身份,那么该方法不太可能产生任何更好的结果。)

5. 我提到过,软件中心使用 PolicyKit 进行身份验证。也许这就是问题所在。

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

sudo echo success

您必须输入密码(不必担心输入密码时屏幕上不会出现任何内容)并按Enter

如果该命令success在终端中输出,那么你就可以以 root 身份运行命令sudo。然后,您应该将该信息添加到您的答案中,并让我们知道您正在运行的 Ubuntu 版本(常规 Ubuntu、Kubuntu、Xubuntu、Lubuntu 等)。您还应该向我们提供以下命令的输出:

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

另外,请描述一下运行第二条命令时除了终端上显示的文本之外还发生了什么。可能什么都没有,但通常情况下,您会得到一个图形身份验证对话框,然后是文本输出。

第二个命令测试 PolicyKit 是否适用于身份验证。(米兰·布歇-瓦拉特值得赞扬该命令的一般形式;参见评论在这个错误中

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

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

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

sudo就 Ubuntu 软件的工作方式而言,它无法完全取代 PolicyKit。但它可以在很大程度上取代 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 -H那么sudo -i您可以安装另一个图形化包浏览和安装/卸载程序:Synaptic。

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

我最近在排除软件中心故障时的一些经验告诉我,即使在软件中心无法运行的情况下,Synaptic 也可以成功以 root 身份运行。这实际上只是猜测;我可能错了。如果您无法运行软件中心,值得一试。

gksudo synaptic
sudo -H synaptic
sudo -i synaptic

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

如果您能够运行sudo echo successsuccess在输入命令的下方控制台中打印,则您是管理员。(或者,您有echo以 root 身份运行命令的特殊权限,但这种情况不太可能发生。)

但如果失败了,最可能(但不是唯一)的原因就是您不是真正的管理员。有时用户会意外删除自己的管理权限。而且可能存在导致这种情况的错误(也许……)。

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

groups

您正在运行 Ubuntu 12.10。在 Ubuntu 12.04 及更高版本(包括 12.10)中,管理员是该sudo组的成员。因此,查看 的sudo输出中是否列出了groups

如果没有列出,则使用这些技巧之一可以重新将自己添加为管理员

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

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

  • 如果你无法进入恢复模式,那么你可以执行第一个7步骤此程序(以 结尾,替换sudo mount /dev/sda1 /mnt/dev/sda1使用您安装的 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 执行此操作,运行 plain visudo,因为这不会达到你想要的效果。这将编辑配置直播系统。此外,与恢复模式不同,在 Live CD 上,您必须使用sudoroot 身份运行命令。因此,请运行:

    sudo visudo -f /mnt/etc/sudoers
    

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

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

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

%sudo例如,之后可能会出现异常(部分或全部撤消该线路)。

因此,如果您属于该sudo群组,但sudo echo success在正常启动到已安装的系统(即不是实时 CD/DVD/USB,也不是恢复模式)时运行时无法工作,请向我们提供文件的完整和准确的内容/etc/sudoers

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

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

相关内容