![现在,systemd 给出了答案。](https://linux22.com/image/833018/%E7%8E%B0%E5%9C%A8%EF%BC%8Csystemd%20%E7%BB%99%E5%87%BA%E4%BA%86%E7%AD%94%E6%A1%88%E3%80%82.png)
我在 KVM 机器上有一个 Ubuntu 虚拟客户机,我已经设置了该机器,以便我可以输入virsh console
并进入控制台。
我意识到了这里的安全考虑,但是否可以设置来宾,以便如果用户通过控制台连接,他们会自动成为 root 而无需输入任何密码。但是这仅适用于串行控制台,而不适用于 SSH 或远程访问。
这实际上不是一个 KVM 问题,而只是一个系统设置,控制台已被设置为一个设备/dev/ttyS0
。
答案1
编辑/etc/init/tty1.conf:
sudo nano -w /etc/init/tty1.conf
将内容替换为以下内容:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
exec /sbin/getty --autologin root -8 38400 tty1
重要的变化是最后一行包含--autologin root
一个参数。
一旦更改完成,可以通过重新启动或运行来激活sudo stop tty1 && sudo start tty1
答案2
现在,systemd 给出了答案。
如上所述,Daniel Llewellyn 的回答是针对新贵的,他忽略了这是为了改变串行设备登录,而不是内核虚拟终端设备登录。在 systemd 世界中,这种区别很重要。
在 systemd 世界中,你同样(和 upstart 一样)必须调整特定getty
程序生成的命令选项以包含--autologin root
。虽然有两种方法可以做到这一点内核虚拟终端,实际上只有一个串行设备,因为没有类似于[email protected]
串行设备登录服务的可调整服务别名。
/etc/systemd/system
使用或直接使用文本编辑器在下编写一个或多个单元文件覆盖文件。通过首先使用清除行然后使用替换行来更改设置:systemctl edit [email protected]
ExecStart
[服务] 执行开始= ExecStart=/sbin/agetty --autologin root -8 --keep-baud 115200,38400,9600 ttyS0 $TERM