有一个 VirtualBox Ubuntu guest (14.04) 仅用于测试。root用户有自己的密码,因此我可以在单独的终端 ( ) 中以 root 身份登录
,或直接从登录会话(例如,在 Ctrl-Alt-F4 之后)登录。su -
$ su -
Password: <current root password>
# echo Works!
由于它是一个 VB 测试系统,并且root用户不需要任何安全性,我希望能够su -
或login
快速成为 root,即root没有密码。
所以,以root身份尝试
# passwd -d root
删除root密码 - 它似乎根据 /etc/shadow ( ::
)
root::16304:0:99999:7:::
但是当尝试时su -
,它要求输入密码,我只需按回车键(无密码)
$ su -
Password:
su: Authentication failure
但它不苏。
必须在某处进行设置以允许root无需密码即可登录/su。
那会在哪里?
尝试
它将询问您的密码以 root 身份登录。
然后使用
passwd
更改root密码。如果你不是 sudo 用户
类型
在最后添加这一行
然后ctrl+x退出然后,y保存更改
然后再试一次
sudo -s
,它将登录到root 而无需询问密码警告; 没有测试,因为我认为这不是一个好主意,即使对于虚拟机也是如此(坏习惯很难消除......)。
我认为这是 PAM 的东西(PAM =可插入的身份验证模块)。
里面有
/etc/pam.d
所有告诉系统如何进行用户身份验证的 PAM 配置文件。现在,检查密码“unix 风格”的模块是pam_unix.so
,您可以在其中的手册页中找到以下选项:所以我怀疑是
pam_unix.so
在上面的文件中找到所有出现的问题,并将选项nullok
(或更改nullok_secure
为nullok
)添加到条目中。根据这篇文章,文件应该是
/etc/pam.d/common-auth
--- 但我不确定这一点,因为在 Ubuntu 中,VC 在/etc/securetty
列表中,所以 root 的空密码应该从那里工作(虽然不是来自终端模拟器),并且 SO 状态它不起作用。因此需要进行一些实验 ;-)。