linux系统通过systemd-logind与pam协同实现tty空闲15分钟自动冻结并强制重新输入用户名和密码:需配置/etc/systemd/logind.conf中idleaction=lock、idleactionsec=900,并在/etc/pam.d/login中启用pam_faillock.so preauth/authfail两行,缺一不可。

Linux系统本身没有“图形锁屏”式自动锁定概念,但可通过 systemd + PAM 组合实现控制台(TTY)空闲15分钟后强制重新认证——即用户返回时需再次输入用户名和密码,达到等效锁定效果。
控制台空闲15分钟自动触发重认证
编辑 /etc/systemd/logind.conf:
IdleAction=lock IdleActionSec=900 StopIdleSession=false
-
IdleAction=lock表示空闲超时后进入不可交互状态(非图形锁屏,而是暂停会话) -
IdleActionSec=900即 15 分钟(900 秒),单位为秒 -
StopIdleSession=false保持会话不被终止,仅冻结;设为true则直接登出(更严格,慎用)
保存后运行:
sudo systemctl restart systemd-logind
⚠️ 注意:该机制只对本地 TTY(如 Ctrl+Alt+F2/F3)生效,不影响 SSH 或桌面环境。SSH 超时由
sshd_config的ClientAliveInterval控制,属连接层断开,不涉及身份核验。
确保返回时必须重新输入密码
仅配置 logind.conf 不够——若 PAM 登录流程跳过认证,用户按键后可能直接恢复会话。需确认 /etc/pam.d/login 启用了 pam_faillock.so 或等效模块:
检查是否存在以下两行(顺序不能颠倒):
auth [default=ignore] pam_faillock.so preauth auth [default=die] pam_faillock.so authfail
- 这两行确保:空闲后恢复时,
login服务会调用 PAM 重新走一遍认证流程 - 若系统使用旧版
pam_tally2(如 CentOS 7),则需在/etc/pam.d/login顶部添加:auth [default=ignore] pam_tally2.so onerr=fail deny=3 unlock_time=300
✅ 验证方法:切到 TTY(Ctrl+Alt+F2),登录后静置超15分钟 → 按任意键 → 应看到黑屏或光标闪烁,回车后提示输入 username,再输密码。若直接恢复命令行,说明 PAM 未生效或
systemd-logind未重启。
补充:桌面环境(GNOME/KDE)需单独设置
上述配置不作用于图形界面。如需 GNOME 下15分钟自动锁屏:
gsettings set org.gnome.desktop.session idle-delay 900 gsettings set org.gnome.desktop.screensaver lock-enabled true
KDE 用户修改 ~/.config/kscreenlockerrc 中 [Daemon] 区块的 Autolock=true 和 LockDelay=900。
不复杂但容易忽略关键点:systemd-logind 配置 + login 的 PAM 认证链必须同时到位,缺一不可。











