介绍

本文在 Archlinux 环境下配置。

大多数个人电脑的启动顺序:

Linux Kernel → Systemd → DisplayManager → DE/WM

DisplayManager 是用户登录前和注销后的交互界面,可用于选择要登录的用户和桌面环境,并进行身份验证,启动图形化桌面进程。对个人电脑较为重要。

Systemd 的启动级别主要分为两个:
• multi-user.target:多用户文本模式(不启动任何图形界面服务)
• graphical.target:图形模式(拉起显示管理器服务)

如果是首次启用登录管理器,需要设置图形界面为默认启动级别:

sudo systemctl set-default graphical.target

后续若想切换登录管理器,需要先禁用当前的,再启用新的。不要同时启用两个 DM 。

指纹登录

如需配置指纹登录,可将 PAM 配置文件前部改成这样:

auth       [success=1 default=ignore] pam_unix.so try_first_pass nullok
auth       sufficient                 pam_fprintd.so
auth       include                    login

第一行,当按下回车时,PAM 会优先让传统的密码模块去校验你输入的内容。

如果输入了正确密码:触发 success=1,会自动跳过随后的 1 行(指纹认证),直接进入第三行的 include login 流程,完成认证。

如果输入了错误密码,例如空密码直接回车:错误会被忽略,继续到第二行,进行指纹认证。

PAM 配置文件存放在: /etc/pam.d/

Greetd

https://github.com/kennylevinsen/greetd

https://github.com/apognu/tuigreet

图中 tuigreet 是一个TUI风格前端,主打极简和高效,不会启动图形环境。它可以在启动后直接进入 PAM 流程,仅需 开机 —> 按指纹 两步完成登录。

Greetd 非常模块化,有众多前端界面例如 tuigreet、agreety、ReGreet、gtkgreet 等。怎么配置丰俭由人。如果喜欢复杂的图形化界面和主题可以尝试别的前端界面。

Greetd 由 Rust 编写,简单轻量。它是一个会话守护进程框架,不算是完整的登录管理器。

由于内核限制,tty仅能显示数字、符号和字母。显示其它文字需要 cjktty 补丁。

配置:

sudo nano /etc/greetd/config.toml
sudo nano /etc/pam.d/greetd

启用 greetd:

sudo systemctl disable greetd.service

Ly

https://github.com/fairyglade/ly

如果追求极简风格或炫酷的 TUI 外观,选择 Ly

Ly 极其轻量,是独立且完整的登录管理器。它只有 TUI 界面,不会启动图形环境。

登录流程相对 greetd 要多一步,因为 Ly 启动后要按回车才进入 PAM 流程,并且没有指纹输入反馈。Ly 也不是模块化的,没有多个前端可以选择。

目前有些细节功能可能不够完善,例如认证会暂停动画背景,大时钟不支持调整颜色等。

由于内核限制,正常 tty 仅能显示数字、符号和字母。显示其它文字需要 cjktty 补丁。

配置:

sudo nano /etc/ly/config.ini

启用 Ly(默认跑在 tty2):

sudo systemctl enable [email protected]

禁用对应的 getty,否则会冲突:

sudo systemctl disable [email protected]

GDM

如果追求美观易用的图形化界面,选 GDM 。一贯的 Gnome 主题风格。

安装和运行依赖 Gnome 桌面环境(无论你用不用)。

相对“重”的显示管理器,更吃内存和性能。

不支持“记住用户”,即使只有一个用户,也需要在开机后手动二次确认。

支持 x11 或 wayland

配置可以使用图形化软件“GDM Settings”。

启用:

sudo systemctl enable gdm --now

SDDM

sddm-retirement.avif

经典 KDE 风格,默认外观一般。虽然自定义程度高,但动效方面感觉不如 GDM 。

安装和运行不依赖 KDE 桌面环境,但更适合与 KDE 桌面配合使用。

不支持指纹登录。虽然可以通过配置支持指纹,但仅仅是“能用”的水平
需要在密码框按下回车后再按指纹,几乎没有任何与指纹相关的提示或反馈。

支持 x11 或 wayland

配置可以使用图形化软件 “KDE设置”内的“颜色与主题”内的“SDDM配置”。

启用:

sudo systemctl enable sddm --now

LightDM

轻量,简单,易用的图形化登录管理器,在服务器上很常用

适合与 Kali, Ubuntu Server 等系统搭配

支持多种 greeter,如 lightdm-gtk-greeter、lightdm-slick-greeter、Web-Greeter。

可以找到丰富的主题。

仅支持 x11,未来大概也不会支持 wayland 。

启用:

sudo systemctl enable lightdm --now

此外

本文在 TTY 中截图所使用的命令:(执行后手动切到tty)

sleep 5 && sudo ffmpeg -device /dev/dri/card0 -f kmsgrab -i - -frames:v 1 -vf "hwdownload,format=bgr0" ~/ss.png

还有一些冷门的登录管理器:

  • emptty: 小巧的 TTY 登录管理器
  • LXDM: LXDE 桌面环境的官方登录管理器,非常轻量,依赖项极少。
  • XDM (X Display Manager): X11 的官方登录管理器,祖宗级软件,界面复古,极其稳定且资源占用低。