当我在 Ubuntu 12.04 的终端中输入sudo su
或sudo -i
时,我无法成为超级用户。当我输入密码时,什么也没有发生。就像:
user@host~: sudo -i
enter passwd: ******
user@host~: nothing happened
进而:
user@host~: sudo -s
root@user~: WTF?
相反,当我的普通用户输入时,sudo -s
它变成root
。Wtf……?
答案1
看来您为 root 用户的默认 shell 设置有误。
- 在第一个命令中
sudo -i
,您通过了登录验证,但没有运行 shell。 - 在第二个命令中
sudo -s
,您已经通过了sudo
身份验证,每个终端只会询问您一次(可能有一个超时期限)。但是这一次,它直接加载,/bin/bash
而不是根配置文件中设置的 shell。
为了测试这个理论,请运行:
sudo -i /bin/bash
有关的:'sudo su -' 与 'sudo -i' 与 'sudo /bin/bash' - 什么时候使用哪个重要,或者根本不重要吗?