</p>rpc **Never logged in**
, p! C v; R2 crpcuser **Never logged in**
9 E3 i' }# O! e8 {& Yxfs **Never logged in** : r6 Q% {# i, P6 B( I
gdm **Never logged in** 3 a- X- M5 r' Z) Z
postgres **Never logged in**
1 ~# C% N# U: N- k! Bapache **Never logged in** & w1 s3 s$ w, |7 S4 L& X, v
lzy tty2 Mon Jul 15 08:50:37 +0800 2002 : @ P! \* D0 {- X
suying tty2 Tue Sep 3 08:31:17 +0800 2002 8 m7 F& E0 A, M: [ m5 f P$ k
系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。若发现记录的时间不是用户上次登录的时间,则说明该用户的账户已经泄密了。 |$ s# {" u8 R M: M: l6 W Q: e
/var/log/wtmp 9 F7 V" k- {+ M k l
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录。 % [0 b4 M: V5 j2 |$ ]
命令last有两个可选参数:
) }! @& |& I" y6 E2 I C2 D0 ~ last -u 用户名 显示用户上次登录的情况。
- I! u' z& Q0 u2 R8 Y. I8 s Q( M4 z last -t 天数 显示指定天数之前的用户登录情况。
) u8 F7 m# [7 m8 ]+ k3 f /var/run/utmp1 U/ i+ D6 j8 t5 m& i0 z
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。 ( M/ P3 k: O; d" L j
以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。
/ H' n' b) q9 V9 r/ y% O 每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后 login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。 |