如果我切换到 tty,例如 tty3,它会要求我输入用户名,然后输入相应的密码。
我怎样才能实现(仅在 tty3 上)它只要求我输入预定义用户名(比如说myuser
)的密码并提到用户名,例如password for myuser
?因此,我不需要在该 tty 上输入用户名,而只需输入密码。
我使用的是 ubuntu 18.04,它使用 systemd。
答案1
您需要添加您正在使用的发行版,因为不同的发行版可能getty
以不同的方式运行。
对于sysvinit
,它是在 中编程的/etc/inittab
,您可能会在其中找到如下行:
3:23:respawn:/sbin/getty 38400 tty3
您可以将该行更改为如下所示:
3:23:respawn:/sbin/getty -n -o ferdinand 38400 tty3
从而导致getty
运行/bin/login -- ferdinand
,即用用户名“ferdinand”启动它。
如 中所述man getty
,该-n
选项告诉它不要提示输入用户名,并且该-o ferdinand
选项告诉它将“ferdinand”添加到其登录子命令行中。
我认为这些选项在其他发行版中的工作方式相同,但启动方式getty
可能tty3
会有所不同,特别是不使用/etc/inittab
.
答案2
相当于 Ralph Rönnquist 答案的 systemd 是输入
sudo EDITOR=/usr/bin/vi systemctl edit getty@tty3
(或您最喜欢的编辑器)。这将为您提供一个临时文件,您可以在其中输入以下行:
[Service]
ExecStart=
ExecStart=-/sbin/agetty -n -o ferdinand %I
并退出编辑器。它将创建该文件。请注意,您需要第一行将要执行的命令列表重置回空。然后您可以照常启用并启动该单元:/etc/systemd/system/[email protected]/override.conf
ExecStart=
sudo systemctl enable getty@tty3
sudo systemctl start getty@tty3
/etc/systemd/system/getty.target.wants/
第一个为未来创建了一个链接。看架构Linux。