允许没有密码的 root 访问

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

  • 你在哪里看到 *sudo* 的问题? (2认同)

Rma*_*ano 6

警告; 没有经过测试,因为我认为这不是一个好主意,即使对于虚拟机(坏习惯很难去除......)。

我认为这是 PAM 的事情(PAM= pluggable authentication modules)。

/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.
Run Code Online (Sandbox Code Playgroud)

所以我怀疑是pam_unix.so在上面的文件中找到所有出现的问题,并将选项nullok(或更改nullok_securenullok)添加到条目中。

根据这篇文章,文件应该是/etc/pam.d/common-auth--- 但我不确定这一点,因为在 Ubuntu 中,VC 在/etc/securetty列表中,所以 root 的空密码应该从那里工作(尽管不是来自终端模拟器),并且 SO 状态它不起作用。

所以需要一些实验;-)。

  • 事实上,它在 `/etc/pam.d/common-auth` 中,与 `pam_unix.so` 一致,将 `nullok_secure` 更改为 `nullok`(以及任何其他必需的 *auth* 文件)。感谢您将特权用户视为成年人,并在警告经验不足的读者的同时提供解决方案。 (3认同)