su命令+认证失败
我遇到了su命令的问题。 我知道我的密码,我输入正确,但su
表示身份validation失败。
所以我检查了互联网,然后进入恢复模式,并将我的用户名密码更改为我之前输入的内容。
即使现在在su
上输入相同的密码也会导致身份validation失败。
请建议我做错了什么?
su
要求输入root密码。 由于Ubuntu默认情况下不设置root密码,因此无法使用它成为root用户。
相反,要成为root用户,请使用sudo -i
和您的个人密码。
su
询问您尝试登录的帐户的密码。 它的用法(简化):
su username
省略username
,用户名默认为root
。 由于在Ubuntu上默认禁用root密码,因此没有密码有效。 运行root命令的首选方法不是通过su shell,而是使用sudo,如下所示:
sudo mount /dev/sdb1 /mnt
默认情况下,Ubuntu中的root
帐户处于禁用状态。 这就是说它没有密码(与密码空白不同)并且不会尝试使用root密码进行身份validation。 因此, su
或su -
将无法正常工作。
相反,使用sudo
以root身份运行命令:
sudo command...
如果你想要一个像su
一样的root shell,运行:
sudo -s
如果你想要一个像su -
一样的root shell,运行:
sudo -i
su
要求输入root密码。
您可以在root用户时设置root密码(通过提供sudo su
,假设您在sudoers
文件中),通过命令passwd
并设置新密码。
不过,出于各种原因,不建议这样做。
在我的情况下,这是因为/etc/shadow
缺少该用户的条目。
我已将/etc/passwd
中ID大于1000的所有条目与/etc/group
一起复制到另一个测试服务器,但忘记了/etc/shadow
。 因此,每当我与任何这些用户做su
,我都会收到该错误。 在/etc/shadow
添加缺少的条目后,错误将停止显示。
例如/etc/shadow
:
myusername:*:16992:0:99999:7:::
我遇到了一个操作系统,Minibian,其中/bin/su
缺少setuid位,导致此错误,即使启用了root帐户的密码也是如此。
在Linux上,成为root的唯一方法是执行setuid-root文件。 当你运行sudo
或su
,他们的setuid位被设置,所以进程’有效用户成为root,然后他们已经以root身份进行身份validation! 如果失败则退出。
无论如何,这里是症状和修复:
$ 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
之后。
当你需要以非登录用户名登录时说git
(没有密码)
su - git Password: su: Authentication failure
解决方案 – 使用此语法以userid git
身份登录
sudo su - git