TTY 自动登录

来自 Alpine Linux

本页面介绍如何设置 tty 自动登录。配置完成后,当计算机开机时,您将自动登录,无需输入密码。请注意,如果其他人启动您的计算机,他们将能够访问您的帐户和您的个人数据。

使用 agetty

安装 agetty

# apk add agetty

编辑 /etc/inittab 以使用 agetty
虚拟终端 tty1 的示例
tty1::respawn:/sbin/agetty --autologin root tty1 linux

串行终端 ttys01 的 inittab 条目示例
ttyS0::respawn:/sbin/agetty --autologin root ttyS0 vt100

提示: 您可以根据需要将 `tty1` 或 `ttyS0` 更改为不同的串行端口或虚拟终端。`root` 也可以更改为不同的用户。最后,终端类型(我们示例中的 `linux` 和 `vt100`)可以更改为各种串行终端。

使用 agetty (CLI Proxmox)

Proxmox (8.3.2) 主机在 /usr/share/perl5/PVE/LXC/Setup/Alpine.pm 中有一个用于 Alpine Linux 的 setup_init 脚本,该脚本会覆盖 /etc/inittab 中对 tty 行的所有更改。

修改 /usr/share/perl5/PVE/LXC/Setup/Alpine.pm 脚本,并在 setup_init 中添加以下行(如果 /etc/inittab 文件包含 “agetty” 单词,则不修改它)。

...
my $inittab = $self->ct_file_get_contents($filename);

--->
56:   if ($inittab =~ /agetty/) {
57:        return;
58:    }
<----

my @lines = grep {
...

更改已用当前行号标记。

运行 LXC 容器后,在其中执行以下步骤

  1. 安装 agetty

    # apk add agetty

  2. 修改 /etc/inittab 中的这一行
tty1::respawn:/sbin/agetty --autologin root --noclear 38400 tty1

重启后,容器将执行自动登录。

通过创建您自己的自动登录包装器

创建一个名为 autologin 的脚本,围绕 /bin/login,并将其移动到 /usr/sbin/ 中,并编辑 /etc/inittab 以指定使用 /usr/sbin/autologin 而不是 /bin/login

  1. 创建并编辑 autologin 包装器脚本 /usr/sbin/autologin 如下

    /usr/sbin/autologin 的内容

    #!/bin/sh exec login -f root
  2. 记住使脚本可执行

    # chmod +x /usr/sbin/autologin

  3. 该脚本执行 login 二进制文件(busybox 的一部分),它将在 $PATH 中搜索。作为参数传递了
    -f 标志,代表 “不验证身份(用户已通过身份验证)”
    此示例中的 用户名 是 root,但如果您创建了新用户,则可以使用其用户名代替。
  4. 打开 /etc/inittab 并将 “:respawn:/sbin/getty” 替换为 “:respawn:/sbin/getty -n -l /usr/sbin/autologin”,对于您要启用自动登录的每个 TTY。
    getty 的 -n 标志不提示用户输入登录名
    getty 的 -l 标志调用自定义登录,而不是 /bin/login;在我们的例子中,它设置为调用 /usr/sbin/autologin
  5. 要在所有 TTY 上执行此类替换,可以使用以下命令

    # sed -i 's@:respawn:/sbin/getty@:respawn:/sbin/getty -n -l /usr/sbin/autologin@g' /etc/inittab

    @” 用作分隔符
    -i 标志就地编辑文件

使用 greetd

Greetd 显示管理器有一个基于文本的 greeter,可以配置为自动登录。

另请参阅