为什么运行“su”命令时出现“身份验证失败”?

为什么运行“su”命令时出现“身份验证失败”?

我在使用该命令时遇到问题su。我知道我的密码,并且输入正确,但su显示Authentication failure

于是我上网查了一下,然后进入恢复模式,将我的用户密码改为我之前输入的密码。即使是现在,输入相同的密码也会出现这种su情况Authentication failure

我究竟做错了什么?

答案1

su要求输入 root 密码。由于 Ubuntu 默认不设置 root 密码,因此您无法使用该密码成为 root。

相反,要成为 root,请使用sudo -i您的个人密码。

答案2

su要求输入您尝试登录的帐户的密码。它的用法(简化):

su username

省略时username,用户名默认为root。由于 Ubuntu 默认禁用 root 密码,因此任何密码都无效。运行 root 命令的首选方式不是通过 su shell,而是使用 sudo,如下所示:

sudo mount /dev/sdb1 /mnt

答案3

Ubuntu 中的该root账户默认是禁用的。这就是说它没有密码(这与它有空白的密码),并且使用 root 密码进​​行身份验证的尝试将不会成功。因此,susu -将不起作用。

相反,使用sudo以 root 身份运行命令:

sudo command...

如果你想要一个像通过 获得的 root shell su,请运行:

sudo -s

如果你想要一个像通过 获得的 root shell su -,请运行:

sudo -i

答案4

我遇到了一个操作系统,Minibian,其中缺少 setuid 位/bin/su,导致此错误,即使启用了 root 帐户的密码也是如此。

在 Linux 上,成为 root 的唯一方法是执行 setuid-root 文件。当您运行sudo或 时su,它们的 setuid 位已设置,因此进程的有效用户将成为 root,然后它们已经以 root 身份进行身份验证!如果失败,它们将退出。

无论如何,以下是症状和解决方法:

$ su
Password:
su: authentication failure
$ sudo su
# ls -l /bin/su
-rwxr-xr-x 1 root root 31092 Jun  5  2012 /bin/su
# chmod u+s /bin/su
# ls -l /bin/su
-rwsr-xr-x 1 root root 31092 Jun  5  2012 /bin/su

注意区别:rwx之前、rws之后。

相关内容