![为什么运行“su”命令时出现“身份验证失败”?](https://linux22.com/image/1104503/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%90%E8%A1%8C%E2%80%9Csu%E2%80%9D%E5%91%BD%E4%BB%A4%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5%E2%80%9D%EF%BC%9F.png)
我在使用该命令时遇到问题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 密码进行身份验证的尝试将不会成功。因此,su
或su -
将不起作用。
相反,使用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
之后。