Bre*_*bad 3 root settings password passwd
使用 VirtualBox Ubuntu 来宾 (14.04) 仅用于测试。
的根用户有其自己的密码,所以可在一个单独的终端作为根登录(su -
),或者直接从登录会话(例如按Ctrl-Alt-F4键之后)。
$ su -
Password: <current root password>
# echo Works!
Run Code Online (Sandbox Code Playgroud)
由于它是一个VB测试系统,并且root用户不需要任何安全措施,我希望能够快速su -
或login
以root身份登录,即没有root密码。
所以,以root身份尝试
# passwd -d root
Run Code Online (Sandbox Code Playgroud)
删除根密码 - 它似乎根据 /etc/shadow ( ::
)
root::16304:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
但是在尝试时su -
,它要求输入密码,我只需按Enter(无密码)
$ su -
Password:
su: Authentication failure
Run Code Online (Sandbox Code Playgroud)
但它没有su。
必须在某处进行设置以允许root无需密码即可登录/su。
那会在哪里?
小智 6
尝试
sudo -s
Run Code Online (Sandbox Code Playgroud)
它会要求您输入密码以 root 身份登录。
然后使用passwd
更改root密码。
如果您不是 sudo 用户
类型
sudo visudo
Run Code Online (Sandbox Code Playgroud)
在最后添加这一行
<username> ALL=NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
then ctrl+x退出 then ,y保存更改
然后再试一次,sudo -s
它会在不询问密码的情况下登录到root
警告; 没有经过测试,因为我认为这不是一个好主意,即使对于虚拟机(坏习惯很难去除......)。
我认为这是 PAM 的事情(PAM= pluggable authentication modules)。
在/etc/pam.d
有所有的PAM配置文件,告诉系统如何做用户的验证。现在,检查密码“unix 样式”的模块是pam_unix.so
,您可以在该手册页中找到以下选项:
Run Code Online (Sandbox Code Playgroud)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 状态它不起作用。
所以需要一些实验;-)。