有一个 VirtualBox Ubuntu 客户机 (14.04),仅用于测试
。根用户有自己的密码,因此我可以在单独的终端(su -
)中以 root 身份登录,或者直接从登录会话登录(例如,按 Ctrl-Alt-F4 之后)。
$ su -
Password: <current root password>
# echo Works!
由于它是一个 VB 测试系统,并且根用户不需要任何安全性,我希望能够su -
或login
以 root 身份快速,即无需根有密码。
因此,尝试根
# passwd -d root
删除根密码 - 它似乎根据 /etc/shadow 工作(::
)
root::16304:0:99999:7:::
但尝试时su -
,它会要求输入密码,我只需按进入(无密码)
$ su -
Password:
su: Authentication failure
但它没有苏。
必须有一个设置来允许根无需密码即可登录/su。
在哪里可以找到?
答案1
警告;未经测试,因为我认为这不是一个好主意,即使对于 VM 而言(坏习惯很难去除...)。
我认为这是 PAM 的事情(PAM=可插入的身份验证模块)。
其中/etc/pam.d
包含所有 PAM 配置文件,用于告诉系统如何对用户进行身份验证。现在,检查“unix 样式”密码的模块是pam_unix.so
,您可以在其手册页中找到以下选项:
nullok The default action of this module is to not permit the user access to a service if their official password is blank. The nullok argument overrides this default and allows any user with a blank password to access the service. nullok_secure The default action of this module is to not permit the user access to a service if their official password is blank. The nullok_secure argument overrides this default and allows any user with a blank password to access the service as long as the value of PAM_TTY is set to one of the values found in /etc/securetty.
因此,我怀疑这是一个在上述文件中找到所有出现的 的问题pam_unix.so
,然后将选项nullok
(或将 更改为nullok_secure
)添加nullok
到条目中。
根据到这个帖子该文件应该是/etc/pam.d/common-auth
---但我不确定,因为在 Ubuntu 中 VC 在/etc/securetty
列表中,所以 root 的空密码应该从那里起作用(虽然不是从终端仿真器),并且 SO 指出它不起作用。
因此需要进行一些实验;-)。
答案2
尝试
sudo -s
它将要求您输入密码以 root 身份登录。
然后使用passwd
更改root密码。
如果你不是 sudo 用户
类型
sudo visudo
在最后添加这一行
<username> ALL=NOPASSWD: ALL
然后ctrl+x退出,然后 ,y保存更改
然后重试sudo -s
它将登录到root权限无需密码