pam autologin
pam_autologin 可以自动登录某个用户。与其他自动登录方式不同,该模块会保存密码,并在正常的认证流程中使用它。随后,密码可以被 pam_mount 用于挂载加密的家目录,或由 GNOME/Keyring 用于解锁登录密钥环。
安装
安装 pam_autologinAUR 软件包。
要为特定应用启用该模块,请编辑其在 /etc/pam.d/ 中的配置,例如:
/etc/pam.d/login
#%PAM-1.0 auth required pam_autologin.so auth include system-local-login account include system-local-login session include system-local-login
自动登录这一行应当是 auth 部分中的第一个模块,这样它才能设置用户名和密码。如果排在前面的是另一个需要用户名的模块,该模块会提示你输入用户名。
每个 TTY 上只会自动登录一次,因为当你注销时,多半是想登录另一个账户。该模块会在 /var、/log、/wtmp 这些路径中查找本次开机以来在该 TTY 上的登录记录。若要每次都自动登录,可以指定 always 选项:
auth required pam_autologin.so always
如果登录过程由基于 PAM 的应用执行,例如显示管理器,或是像 loginxAUR 那样的 getty/login 组合,那就无需进一步配置。但普通的 agetty 并不是 PAM 应用,它总会提示输入用户名。要为它启用自动登录,需要给 getty 加上 --skip-login 选项以便直接启动 login,具体做法是为 systemd 的 getty@.service 添加一个附加代码片段:
/etc/systemd/system/getty@.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --skip-login --noreset --noclear - ${TERM}
配置
通过创建配置文件来让自动登录模块保存下一次登录:
# touch /etc/security/autologin.conf
重启后,你应该会看到一条消息,告知下一次登录将被保存。正常登录。再次重启后,你应该会被自动登录。
当你想要停止自动登录时,删除该配置文件:
# shred -u /etc/security/autologin.conf
请使用 shred 工具在删除文件之前将其内容清零。该文件中包含你的用户名和密码,否则它们可能留在未分配的存储区域中,某些黑客有可能在那里找到它们。尽管该文件用随机密钥做了混淆,但为了让自动登录模块能够自动读取它,密钥必须存放在文件本身之中,因此这只能起到混淆作用,而无法提供保护。
安全性
自动登录常常被不应得地讥为不安全,因此似乎有必要就此做一些说明。要判断它对你来说是否不安全,你必须问一句:“要防范什么?”对绝大多数用户而言,值得担心的威胁只有两类:恶意软件和失窃。
恶意软件和各种远程入侵威胁,是通过以用户权限运行的程序中的缺陷进来的,通常就是网页浏览器。本模块保存的登录信息只有 root 可读,所以恶意软件首先需要借助一个提权漏洞。以 root 权限运行的恶意软件本来就能用键盘记录器记录你的登录来拿到密码,因此在那种情况下,自动登录并不会降低你的安全性。
失窃是另一种常见威胁,而自动登录确实会让窃贼完全访问一切。失窃对你来说有多大的威胁,因人而异。如果你在家中使用台式机,在大多数地方它被盗的可能性微乎其微。在大城市之外,入室盗窃并不常见。如果你在家工作,那就尤其安全;窃贼不喜欢和人打交道。在台式机上启用自动登录,你的安全程度基本与未启用时相当,而不用输入密码带来的便利很可能超过任何残余的顾虑。
另一方面,笔记本电脑被盗的可能性要大得多。每当你在公共场所把它放在无人看管之处,回来时发现它不见了都不足为奇。在笔记本电脑上使用自动登录通常不是一个好主意,但笔记本电脑并不总是在公共场所使用。如果你只在家中使用笔记本电脑,它遭遇失窃的风险并不比台式机更高,在它上面使用自动登录同样安全。如果你在家以外的地方使用笔记本电脑,但只是偶尔,那你可以在出门前先禁用自动登录。这样你仍然可以让一切保持加密,同时在安全的地点仍能享受自动登录的便利。
在大多数情况下,除了随身携带于公共场所的笔记本电脑之外,使用 pam_autologin 是相当安全的,没什么理由害怕使用它。