Jos*_*osh 12 login autologin debian
我刚刚在一台旧笔记本电脑上安装了 Debian 9.2.1 作为廉价服务器。除了我自己以外的任何人都无法物理访问计算机,所以我想在启动时自动登录,这样如果我必须使用笔记本电脑本身而不是 SSH,我就不必费心登录。我没有图形环境安装,所以这些方法都不起作用,我已经尝试了多种解决方案,例如https://superuser.com/questions/969923/automatic-root-login-in-debian-8-0-console-only 然而所有它确实导致根本没有给出登录提示......所以我重新安装了Debian。如何在没有图形环境的情况下自动登录?谢谢!
GAD*_*D3R 26
编辑您的/etc/systemd/logind.conf,更改#NAutoVTs=6为NAutoVTs=1
创建一个/etc/systemd/system/getty@tty1.service.d/override.conf通过;
systemctl edit getty@tty1
Run Code Online (Sandbox Code Playgroud)
粘贴以下几行
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
Run Code Online (Sandbox Code Playgroud)
启用getty@tty1.service然后重新启动
systemctl enable getty@tty1.service
reboot
Run Code Online (Sandbox Code Playgroud)
小智 8
我只想在此讨论中补充一点,已接受的答案与虚拟终端有关。就我而言,我必须编辑一个用于串行终端的单独服务文件。该文件位于/lib/systemd/system/serial-getty@.service并且添加--autologin <user>到适当行的相同过程可以解决问题。
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --autologin root %I $TERM
Run Code Online (Sandbox Code Playgroud)
我想添加一个更彻底的答案,特别是考虑到有关从@Keelan 破坏他的系统的评论。
首先,如果您希望只有一个 TTY 正在运行该程序,并且不能登录到任何其他 tty,那么请编辑您的/etc/systemd/logind.conf,并更改#NAutoVTs=6为NAutoVTs=1. 这样做将使您无法登录终端!
接下来创建一个目录和一个override.conf文件:
mkdir -p /etc/systemd/system/getty@tty1.service.d
echo "[Service]" > /etc/systemd/system/getty@tty1.service.d/override.conf
echo "ExecStart=" >> /etc/systemd/system/getty@tty1.service.d/override.conf
echo "ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/getty@tty1.service.d/override.conf
Run Code Online (Sandbox Code Playgroud)
不要重启。不要像其他答案中描述的那样重新启动,而是登录到另一个 TTY,然后运行以下命令来测试:
systemctl daemon-reload
systemctl restart getty@tty1.service
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,则重新启动。
但是如果我想运行一个程序而不是自动登录呢? 然后,您将使用以下内容:
mkdir -p /etc/systemd/system/getty@tty1.service.d
echo "[Service]" > /etc/systemd/system/getty@tty1.service.d/override.conf
echo "ExecStart=" >> /etc/systemd/system/getty@tty1.service.d/override.conf
echo "ExecStart=-/path/program -arg1 -arg2" >> /etc/systemd/system/getty@tty1.service.d/override.conf
echo "StandardInput=tty" >> /etc/systemd/system/getty@tty1.service.d/override.conf
echo "StandardOutput=tty" >> /etc/systemd/system/getty@tty1.service.d/override.conf
Run Code Online (Sandbox Code Playgroud)
现在请记住,这将在没有bashrc. 这意味着如果您使用类似的东西,screen那么您将无法获得所有常用的别名/等。要解决这个问题,请使用上面的标准自动登录,但将其添加到您的.bashrc:
[ `tty` == /dev/tty1 ] && /path/program -arg1 -arg2
Run Code Online (Sandbox Code Playgroud)
这意味着该程序只会在 上运行tty1,但会在下面为您提供完整的外壳。
| 归档时间: |
|
| 查看次数: |
40163 次 |
| 最近记录: |