Ubuntu 是否会阻止没有密码的单用户模式

Ubuntu 是否会阻止没有密码的单用户模式

今天尝试用我熟知好几年的方法进入单用户模式:进入 grub 的编辑模式,single在行末添加kernel并输入F10

我以为不用输入密码就可以进入单用户模式,但出乎意料的是,它要求我输入 root 密码。我不知道为什么,因为我总是用这种方式来拯救我的 linux 系统,例如,如果我忘记了 root 密码,我可以用这种方式创建一个新的 root 密码。

但现在情况变了……

那么Ubuntu已经阻止了这个无密码单用户模式吗?

答案1

那么Ubuntu已经阻止了这个无密码单用户模式吗?

不。如果为“root”设置了密码,单用户模式会要求输入密码,但这不是默认密码。

输入 root 密码

Ubuntu 不支持“root”,并且在安装时设置/禁用“root”的密码。

然后还有 systemd。看看...

grep ExecStart /usr/lib/systemd/system/rescue.service

返回“sulogin”,则这是要求输入密码的原因。该行中的参数将解释所要求的内容。


sulogin 的手册页解释其行为:

sulogin is invoked by init when the system goes into single-user mode.

The user is prompted:

      Give root password for system maintenance
      (or type Control-D for normal startup):

If the root account is locked and --force is specified, no password is required.

答案2

如果您不想让单用户模式提示输入密码,负责的文件是/lib/systemd/system/rescue.service,具体来说是该ExecStart行,但是,不建议直接编辑此文件,因为它可能会被覆盖。

相反,我们需要为其创建一个覆盖文件,如下所示:

systemctl edit rescue.service

这将打开一个文本编辑器。添加以下行:

[Service]
ExecStart=
ExecStart=-/bin/bash

(仅供参考:ExecStart=在将其设置为我们想要的值之前,必须先取消设置现有值)

现在保存文件,它将创建一个文件,/etc/systemd/system/rescue.service.d/override.conf其内容将覆盖/lib/systemd/system/rescue.service

您还需要确保该软件包friendly-recovery已被卸载,否则将无法正常工作

apt purge friendly-receovery

卸载软件包应该会自动调用,update-grub但如果没有,您可能需要手动运行它。

如果您想恢复默认行为(提示输入 root 密码),请删除/etc/systemd/system/rescue.service.d/override.conf您创建的文件并(如果需要)重新安装该friendly-recovery软件包。

相关内容