答案1
以 CentOS 8 的当前状态,我不这么认为。
问题在于,从串行端口进行的传统 Unix 登录涉及两个组件:getty
初始化端口设置并提示输入用户名的进程,以及login
提示输入密码、检查密码并启动用户会话的进程。 RHEL/CentOS SELinux 规则在编写时就考虑到了这一点。
agetty
您可以通过将和的组合替换为login
同时完成这两项工作的其他内容,并调整 PAM 和 SELinux 配置以匹配,从而使配置自动登录变得更简单,但您会发现这比列出的三个简单步骤要复杂得多在您提供的链接中。
配置自动登录在安全方面是一项非常重要的操作,因此它通常应该是一个多步骤的过程,因此不太可能意外完成。如果您发现自己经常这样做,那么没有什么可以阻止您使用您选择的工具(例如,只是一个脚本,或者可能是 Ansible 之类的东西)来自动化它。
答案2
我对缺乏更清洁的方法也有类似的担忧,因此我必须提出与链接问题中提供的不同的解决方案。
- 您需要为内核配置控制台。这取决于平台,但通常是
console=ttyS0
或console=hvc0
。那么您不需要将串行控制台附加到/etc/securetty
,如中所述pam_securetty(8):
pam_securetty [...] will also allow root logins on the tty specified with console= switch on the kernel command line and on ttys from the /sys/class/tty/console/active.
- root 登录应该明确允许在串行控制台上,即
/etc/pam.d/login
应该有pam_securetty
模块:
#%PAM-1.0
auth required pam_securetty.so
...
- 然后你需要在systemd中配置自动登录盖蒂,运行并替换传递给的参数
systemctl edit [email protected]
登录-o '-p -- \\u'
使用自动登录:
ExecStart=-/sbin/agetty --autologin root --noclear --keep-baud 115200,38400,9600 %I $TERM