登陆记账:linux系统中存在两个文件,utmp文件和wtmp文件用于记录用户登陆与登出系统有关的信息的数据文件;
utmp文件:位于/var/run/utmp,维护着当前登陆进系统的用户信息,who(1)之类的命令就会使用utmp文件信息,当用户登陆时,会在utmp文件中维护一种结构体utmpx,用于记录用户的user_id等信息,当该用户退出时,该记录会在utmp文件中删除;
wtmp文件:位于/var/log/wtmp,包含所有用户登陆和登出行为的留痕信息以供审计之用,last(1)命令用来显示和过了wtmp文件的内容。
utmp和wtmp文件检索信息api
(1)setutxent:将utmp文件的当前位置设置到文件的起始位置。
(2)endutxent:用完文件后调用此函数关闭文件;
(3)getutxent/getutxid/getutxline 从utmp文件中读取一个记录并返回一个指针utmpx结构的指针;
lastlog:记录每个用户最近一次登陆系统的时间。