曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4879|回复: 0
打印 上一主题 下一主题

utmp 和 wtmp 文件简介

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2011-12-30 12:04:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 UNIX/Linux 系统上持有两个保存了用户登录和注销信息的文件:utmp wtmp

utmp 文件保存了用户的当前登录信息。在每个用户登录系统时,一条相应的信息就会写进 utmp 这个文件里。在这条信息里,ut_user 记录了登录的用户名,当用户登出时该条目就会被擦除。像 who 命令就是读取了 utmp 文件的内容,从而获得了当前登录的用户,如:
linux-xh53:~ # who
beyes    :0           Dec 30 11:08 (console)
beyes    pts/0        Dec 30 11:08
beyes    pts/1        Dec 30 11:09 (192.168.1.100)
root     pts/2        Dec 30 11:20 (192.168.1.100)

wtmp 是一个对用户登录登出的跟踪审查文件。在用户每次登录时,一条和写到 utmp 文件里的同样信息同样会写到 wtmp 文件里。在用户登出系统时,同样也会有相应的信息记录到该文件中。通过 last 命令可以显示 wtmp 文件的内容,比如:
linux-xh53:~ # last
beyes    pts/1        192.168.1.100    Fri Dec 30 11:38 - 11:38  (00:00)
root     pts/2        192.168.1.100    Fri Dec 30 11:20   still logged in
beyes    pts/1        192.168.1.100    Fri Dec 30 11:09 - 11:34  (00:25)
reboot   system boot  3.1.0-1.2-deskto Fri Dec 30 11:08 - 11:39  (00:31)
beyes    pts/0                         Fri Dec 30 11:08 - crash  (00:00)
beyes    console      :0               Fri Dec 30 11:08 - crash  (00:00)
beyes    pts/3        192.168.1.100    Thu Dec 29 17:06 - 01:33  (08:26)
beyes    pts/2        192.168.1.100    Thu Dec 29 09:28 - 01:33  (16:05)
在上面的输出中,still logged in 表示用户仍然登录在系统中,而 crash 表示用户还处于登录状态时,系统发生崩溃或者被重启。

在 Linux 里,utmp 文件的绝对路径是 /var/run/utmp ,该文件通常用 who 命令来读取;wtmp 文件的绝对路径是 /var/log/wtmp ,该文件通常通过 last 命令来读取。这两个文件都不是普通的文本文件,所以不能用 cat ,less,more 等命令来查看。

通常,应用程序也不需要事先就知道这两个文件的路径,因为它们都是被编译到 glibc 里。在 paths.h 这个头文件里我们可以看到有两个宏定义到了这两个文件的路径,如:
#define _PATH_UTMP      "/var/run/utmp"
#define _PATH_WTMP      "/var/log/wtmp"

utmp 的结构定义可参考:http://www.groad.net/bbs/read.php?tid-5805-ds-1.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 17:24 , Processed in 0.079740 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表