今天尝试用我熟知好几年的方法进入单用户模式:进入 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
软件包。