现在,systemd 给出了答案。

现在,systemd 给出了答案。

我在 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

进一步阅读

相关内容