博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unix-Linux 编程实践教程 第二章 小结
阅读量:7235 次
发布时间:2019-06-29

本文共 3751 字,大约阅读时间需要 12 分钟。

hot3.png

  • utmp文件记录当前正在本系统中的用户的登录信息
  • wtmp文件记录登录过本系统的用户的登录信息

    PS:man who命令即可查找到utmp和wtmp文件在当前系统的位置

  • who命令相关:
    1. who显示当前已登录用户的用户信息
    2. whoami显示当前shell相关的有效用户
    3. who am i显示当前真正已登录用户的用户信息
  • utmp和wtmp采用同一结构utmp存储登录信息
    #define EMPTY         0 /* Record does not contain valid info                                      (formerly known as UT_UNKNOWN on Linux) */           #define RUN_LVL       1 /* Change in system run-level (see                                      init(8)) */           #define BOOT_TIME     2 /* Time of system boot (in ut_tv) */           #define NEW_TIME      3 /* Time after system clock change                                      (in ut_tv) */           #define OLD_TIME      4 /* Time before system clock change                                      (in ut_tv) */           #define INIT_PROCESS  5 /* Process spawned by init(8) */           #define LOGIN_PROCESS 6 /* Session leader process for user login */           #define USER_PROCESS  7 /* Normal process 此处表明此记录用户当前是处于登录中*/           #define DEAD_PROCESS  8 /* Terminated process 此处表明此记录用户已经注销 */           #define ACCOUNTING    9 /* Not implemented */           #define UT_LINESIZE      32           #define UT_NAMESIZE      32           #define UT_HOSTSIZE     256           struct exit_status {              /* Type for ut_exit, below */               short int e_termination;      /* Process termination status */               short int e_exit;             /* Process exit status */           };           struct utmp {               short   ut_type;              /* Type of record */               pid_t   ut_pid;               /* PID of login process */               char    ut_line[UT_LINESIZE]; /* Device name of tty - "/dev/" */               char    ut_id[4];             /* Terminal name suffix,                                                or inittab(5) ID */               char    ut_user[UT_NAMESIZE]; /* Username */               char    ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or                                                kernel version for run-level                                                messages */               struct  exit_status ut_exit;  /* Exit status of a process                                                marked as DEAD_PROCESS; not                                                used by Linux init (1 */               /* The ut_session and ut_tv fields must be the same size when                  compiled 32- and 64-bit.  This allows data files and shared                  memory to be shared between 32- and 64-bit applications. */           #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32               int32_t ut_session;           /* Session ID (getsid(2)),                                                used for windowing */               struct {                   int32_t tv_sec;           /* Seconds 用户处于登陆中则代表用户登录时间,用户已注销则代表用户注销时间*/                   int32_t tv_usec;          /* Microseconds */               } ut_tv;                      /* Time entry was made */           #else                long   ut_session;           /* Session ID */                struct timeval ut_tv;        /* Time entry was made */           #endif               int32_t ut_addr_v6[4];        /* Internet address of remote                                                host; IPv4 address uses                                                just ut_addr_v6[0] */               char __unused[20];            /* Reserved for future use */           };           /* Backward compatibility hacks */           #define ut_name ut_user           #ifndef _NO_UT_TIME           #define ut_time ut_tv.tv_sec           #endif           #define ut_xtime ut_tv.tv_sec           #define ut_addr ut_addr_v6[0]

     

转载于:https://my.oschina.net/u/3281747/blog/2873411

你可能感兴趣的文章
IDC 监控技术介绍
查看>>
Veritas troubleshoots
查看>>
你必须要知道的数据备份工具rsync
查看>>
oracle关于坏块的修复一
查看>>
lzg_ad:FBWF配置详解
查看>>
gitlab部署、配置更改、备份及恢复
查看>>
关于共享SQL——窥视解析
查看>>
linux和windows同步数据 cwrsync client to rsync server
查看>>
浅谈ListBox在Windows Phone 7 中的使用
查看>>
《Zabbix安装部署-1》-Centos7
查看>>
Java GUI:SWT/Swing/AWT的介绍及比较
查看>>
优化mysql数据表的shell脚本
查看>>
【UNITY3D 游戏开发之三】NGUI && HUDText 的练习源码及资源
查看>>
我为什么讨厌slf4j
查看>>
ECMAScript 6 -- 字符串的扩展
查看>>
android apk--程序发布前的准备
查看>>
Oracle Study之--Oracle RAC重建控制文件
查看>>
UWA新增硬件参数功能!
查看>>
面向接口编程实现不改代码实现Redis单机/集群之间的切换
查看>>
现任明教教主CCNP Security Secure第四天第三部分
查看>>