有没有什么简单直接的方法可以设置我的 Debian 8.2 机器在启动时使用控制台上的 root 帐户自动登录?
机器上没有安装 GUI。
按照没有 GUI (xserver) 的 Debian 6.0 中的自动 root 登录中的说明不起作用(文件不存在,不推荐使用选项)。
Mar*_*iae 15
该文件/etc/inittab不再使用systemd。如果你愿意,你可以安装systemv,你会发现自己是一个全新的inittab,但这意味着像螃蟹一样倒退。
您可以改为编辑文件/lib/systemd/system/getty@.service并更改行
ExecStart=-/sbin/agetty --noclear %I $TERM
Run Code Online (Sandbox Code Playgroud)
到
ExecStart=-/sbin/agetty --noclear -a root %I $TERM
Run Code Online (Sandbox Code Playgroud)
这只是从 agetty 手册页中得到的,其中指出,除其他外:
-a,--autologin username自动登录指定用户,无需输入登录名和密码。该
-f username选项/bin/login默认添加到命令行。该--login-options选项更改此默认行为,然后仅\u由 替换,username并且没有其他选项添加到登录命令行。
可以肯定的是,我刚刚在我的 Debian VM 上测试了它,它运行良好。
不要/lib/systemd直接编辑单元,因为它们是由已安装的包管理的,并且会在包升级期间被覆盖。
相反,使用$ sudo systemctl edit getty@.service来创建一个下拉单元在/etc/systemd/system/getty@.service.d/override.conf具有以下内容:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear --autologin your_user_name %I $TERM
Run Code Online (Sandbox Code Playgroud)
它与@MariusMatutiae 的答案具有相同的效果,但在系统升级期间不会被触及。
第一行选择[Service]要覆盖的部分。第二行明确清除ExecStart条目——否则原来的ExecStartin/lib/systemd仍然有效,因为在单个服务单元中允许多个ExecStart指令oneshot。最后一行定义了新的ExecStart命令行,@MariusMatutiae 的回答中已经对此进行了解释。
有关更多详细信息和示例,请参阅systemd.unit(5) 手册页。