10.3. login 程序的作用

login 程序负责验证用户身份(确保用户名和密码匹配),并通过设置串行线的权限和启动 shell 来为用户设置初始环境。

初始设置的一部分是输出文件/etc/motd(“message of the day”的缩写)并检查电子邮件。 这些可以通过创建一个名为.hushlogin在用户的主目录中。

如果文件/etc/nologin存在,则禁用登录。 该文件通常由 shutdown 及其相关程序创建。 login 检查此文件,如果它存在,将拒绝接受登录。 如果它确实存在,login 会在退出前将其内容输出到终端。

login 将所有失败的登录尝试记录在系统日志文件中(通过 syslog)。 它还记录 root 用户的所有登录。 这两者在追踪入侵者时都可能很有用。

当前登录的用户列在/var/run/utmp中。 此文件仅在系统下次重启或关机前有效; 当系统启动时,它会被清除。 它列出了每个用户及其正在使用的终端(或网络连接),以及其他一些有用的信息。 whow 和其他类似的命令会在utmp中查找以查看谁已登录。

所有成功的登录都记录到/var/log/wtmp中。 此文件将无限制增长,因此必须定期清理,例如通过每周运行 cron 任务来清除它。 last 命令会浏览wtmp.

两者utmpwtmp都是二进制格式(参见utmp手册页); 不幸的是,如果不使用专用程序,则不方便检查它们。