我在 ARM chromebook 上安装了 linaro 系统,它似乎会自动引导到 root 提示符。我设置了用户密码,并使用它登录 GUI,但只需按 Ctrl+Alt+F1,我就可以进入登录的 root 提示符。
使用 passwd 设置新的 root 密码没有帮助。我无法退出 root shell,它只是让我返回到新的登录 root shell。
答案1
好的,我明白了。所以这就是登录的工作原理。有一个/etc/init/tty1.conf
运行 getty 的 init 脚本。Getty 是一个等待登录连接然后对用户进行身份验证的程序。我最初以为 getty 是用自动登录运行的,所以我寻找了一行,意思/etc/init/tty1.conf
是
exec /sbin/getty -8 38400 -a root tty1
,以 38400 波特打开一个 8 位终端并自动将 root 用户登录到 tty1。但是当我查看文件时,没有自动-a
登录 root 用户的选项。我之所以这么说,是因为/etc/init/tty1.conf
如果其他人遇到同样的问题,应该是首先要查看的地方。
然后我浏览了/etc/init/
目录,找到了一个名为的文件openvt.conf
。该文件有以下几行:
exec /bin/login -f root
这就是罪魁祸首。带有-f
选项的 login 命令会自动登录用户而无需身份验证。
由于该openvt.conf
文件旨在作为新贵服务,因此必须以特定方式禁用它,尽管也可以简单地删除该文件。请参阅这个 askubuntu 帖子关于 upstart。简而言之,要么删除该openvt.conf
文件,要么运行
echo manual | sudo tee /etc/init/openvt.override
,然后 root 就不再自动登录了。