Chinaunix首页 | 论坛 | 博客
  • 博客访问: 959341
  • 博文数量: 245
  • 博客积分: 11429
  • 博客等级: 上将
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-15 00:16
文章存档

2011年(56)

2010年(174)

2009年(15)

分类: LINUX

2011-04-08 13:16:46

获取当前用户的信息

    要获取当前使用 UNIX 系统的用户的列表,可以使用很多不同的方式。其中最显而易见、且最直接的方式是使用 who 命令。who 命令可以返回一个列表,该列表中包括当前登录的用户、他们所连接到的终端、他们登录的日期,以及他们登录的主机名的 IP 地址。
如:
~]# who
root     pts/1        2011-04-08 21:19 (192.168.1.137)
用户     登陆终端      时间              远程ip
也可以加-q参数如:
~]#who -q
root root   #用户名
# users=2    #用户数

    您可以通过添加 -a 和 -H 命令行选项来查找更详细的信息。-a 选项包括所有来自 /var/adm/utmpx 文件的最新信息,该文件用于记录登录信息。这个文件还可以记录其他事件,如启动的日期和时间,以及最近的运行级别更改。在本文稍后的内容中,您将进一步地了解该文件中存储的相关信息。-H 选项用于为输出中的各列添加标题信息
~]# who -aH
NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
                        2011-04-07 18:06               663 id=si    term=0 exit=0
           system boot  2011-04-07 18:06
           run-level 5  2011-04-07 18:06                   last=S
                        2011-04-07 18:07              2263 id=l5    term=0 exit=0
LOGIN      tty1         2011-04-07 18:07              4956 id=1
LOGIN      tty2         2011-04-07 18:07              4957 id=2
LOGIN      tty3         2011-04-07 18:07              4958 id=3
LOGIN      tty4         2011-04-07 18:07              4960 id=4
LOGIN      tty5         2011-04-07 18:07              4962 id=5
LOGIN      tty6         2011-04-07 18:07              4963 id=6
                        2011-04-07 18:07              4964 id=x
root     + pts/1        2011-04-08 21:19   .         32509 (192.168.1.137)
root     + pts/2        2011-04-08 21:20 00:10       32543 (192.168.1.137)

通过开头的两行,您可以了解最近一次启动系统的时间,以及最近一次运行级别更改的日期和详细情况

最后的两行是使用安全 Shell (SSH) 的远程登录。对于所有的活动进程,您都将获取一个进程 ID,这意味着您可以在 ps 列表中通过 ID 来识别原始用户。

LINE 列是用户所连接到的终端;控制台显然是该计算机的主键盘和监视器。pts 行指的是自动创建的、用以处理远程 SSH 连接的伪终端。
ruptime 工具
  1. $ ruptime
  2. solaris-desktop  up     3:53,     1 user,   load 0.00, 0.00, 0.00
  3. ultra3        up     3:46,     2 users,  load 0.00, 0.00, 0.00
复制代码
对于 who 和 rwho 来说,将当前连接到您的计算机的 who 信息记录到 /var/adm/utmp 文件中,而曾经登录(并已注销)的用户的历史信息则保存于 wtmp 计算机中。所有这些文件都包含了大量的信息,但是这些文件都没有可用的直接格式。让我们更深入地研究这些文件,并了解如何显示这些信息。

用户活动所使用的日志文件

有很多文件用于记录用户的登录和活动。用于记录这种信息的文件主要包括下面三个:
    * utmp,这个文件记录了当前登录的用户的相关信息。对于用户的每次登录,它都应该包含一条相应的记录。
    * wtmp,这个文件记录了用户进行的所有登录(和注销)。在一个繁忙的系统中,这个文件是相当大的,因为对于每次登录,它都包含一条登录和一条注销记录。这个文件还包含了一些系统相关的日志信息,如重新启动、关闭和日期更改。
    * lastlog,这个文件记录了每个用户最近一次登录的时间。对于每个用户,这个文件仅包含一条记录。

在您了解了这些文件是何时、采用何种方式写入的之后,那么这些文件之间的关系就相当直观了。基本顺序如下所示:
    * 当用户登录的时候,打开 lastlog 文件,并对他们的记录中的登录日期和时间进行更新。然后,打开 utmp,并记录他们的当前登录信息。将登录记录(通常将这些信息的副本添加到 lastlog)写入到 utmp 日志中,以记录相应的登录信息。
    * 在注销期间,删除写入到 utmp 的登录记录(因为该用户不再处于登录状态),但是将一条新记录写入到 wtmp,以记录该用户已经注销的事实。
    * 这些文件的格式都是二进制的;所以,必须使用一种单独的、能够读取和解析其中信息的工具来报告这些信息。通常,wtmp 和 lastlog 文件的基本格式是相同的,并且它们都使用一种简单格式来记录登录时间、登录行和主机名称行信息,如清单 8 中所示,其中显示了 Solaris 格式。

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