获取当前用户的信息 要获取当前使用 UNIX
系统的用户的列表,可以使用很多不同的方式。其中最显而易见、且最直接的方式是使用 who 命令。who
命令可以返回一个列表,该列表中包括当前登录的用户、他们所连接到的终端、他们登录的日期,以及他们登录的主机名的 IP 地址。
如:
~]# who root pts/1 2011-04-08 21:19 (192.168.1.137)
用户 登陆终端 时间 远程ip
也可以加-q参数如:
~]#who -qroot root #用户名
# users=2 #用户数
您可以通过添加 -a 和 -H 命令行选项来查找更详细的信息。-a 选项包括所有来自 /var/adm/utmpx
文件的最新信息,该文件用于记录登录信息。这个文件还可以记录其他事件,如启动的日期和时间,以及最近的运行级别更改。在本文稍后的内容中,您将进一步地了解该文件中存储的相关信息。-H
选项用于为输出中的各列添加标题信息
~]# who -aHNAME 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 工具
- $ ruptime
- solaris-desktop up 3:53, 1 user, load 0.00, 0.00, 0.00
- 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) |