Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1738913
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 系统运维

2012-03-29 12:36:26

由多数UNIX系统提供的两个数据文件是utmp文件,它跟踪所有当前登录的用户,和wtmp文件,它记录所有的登入与登出。在版本7,一个记录类型被这两个文件写,一个与下面结构体一致的二进制记录:


struct utmp {
  char ut_line[8]; /* tty line: "tyh0", "ttyd0", "ttyp0", ... */
  char ut_name[8]; /* login name */
  long ut_time; /* seconds since Epoch */
};


当登录时,一个这样的结构体被填充,并由login程序写入到utmp文件里,而同样的结构体被添加到wtmp文件里。在登出时,utmp文件的项被删除 --用空字节填充--由init进程,而一个新的项被添加到wtmp文件里。这个在wtmp文件的登出项的ut_name域被清零。一些特殊的项被添加到 wtmp文件来指明系统何时重启,和系统时间和日期改变前后的时间。who程序读取utmp文件并以可读格式打印它的内容。UNIX系统的更新版本提供了 last命令,来从wtmp文件里读取并打开选择的项。


UNIX系统的多数版本仍提供tmp和wtmp文件,但正如预期的,这些文件的信息量已经增长了。版本7的20字节的结构体在SVR2增长到了36字节,而SVR4的扩展的utmp结构体超过了350字节!


这些记录在Solaris的细节格式在utmpx手册页里给出。在Solaris 9,两个文件都在/var/adm目录下。Solaris在getutx里提供了许多函数来读取这两个文件。


在FreeBSD 5.2.1、Linux 2.4.22、Mac OS X 10.3上,utmp手册页给了这些登入记录的它们版本的格式。这两个文件的路径名为/var/run/utmp和/var/log/wtmp。

阅读(921) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~