前言
在systemd-nspawn容器中使用root登录Arch Linux时,会发现即使输入正确的密码,也会提示密码错误。这是因为Arch Linux的安全策略仅允许root用户在console、tty1、tty2、tty3、tty4、tty5、tty6、ttyS0、hvc0这些终端登录,而容器中的终端并不在这些终端列表中。
解决方法
解决方法很简单,只需要在容器中的/etc/securetty文件中添加容器的终端即可,例如:
echo "pts/0" >> /etc/securetty
说明
这一方法存在风险,因为/etc/securetty文件中的终端会被视为安全终端,允许root用户登录。因此,如果容器中的终端被其他用户控制,可能会导致安全问题。
一般来说,使用systemd-nspawn容器时,仍然建议使用machinectl login或者machinectl shell等命令登录容器。