如何解释`utmpdump /var/log/utmp`的所有字段

如何解释`utmpdump /var/log/utmp`的所有字段

我想监视登录的会话,包括他们登录的方式(物理控制台或 SSH),以及该会话存在的时间。

似乎utmpdump /var/log/utmp有这些信息,但我找不到解释所有字段的文档。有人可以启发我吗?

答案1

这些字段是(struct utmp括号中的成员名称 - 请参阅man 5 utmp):

  1. 记录类型 ( ut_type)
  2. 登录进程PID ( ut_pid)
  3. 终端名称后缀或inittab(5)ID ( ut_id)
  4. 用户名 (ut_user
  5. 设备名称或 tty - " /dev/" ( ut_line)
  6. 远程登录的主机名,或运行级消息的内核版本 ( ut_host)
  7. 远程主机的 Internet 地址 ( ut_addr_v6)
  8. 已输入时间(ut_time或实际上ut_tv.tv_sec

ut_type第一个字段(或“记录类型”)的可能值在utmp(5)6例如LOGIN_PROCESS,或“用户登录的会话领导进程”)中进行了解释。

答案2

print_utline在源代码的函数中utmpdump,您可以找到一些帮助:

static void print_utline(struct utmp ut, FILE *out)
{
....
    /*       pid    id       user     line     host     addr       time */
fprintf(out, "[%d] [%05d] [%-4.4s] [%-*.*s] [%-*.*s] [%-*.*s] [%-15s] [%-28.28s]\n",
       ut.ut_type, ut.ut_pid, ut.ut_id, 8, UT_NAMESIZE, ut.ut_user,
       12, UT_LINESIZE, ut.ut_line, 20, UT_HOSTSIZE, ut.ut_host,
       addr_string, time_string);
}

相关内容