拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何在 Linux 上访问用户活动

如何在 Linux 上访问用户活动

白鹭 - 2022-01-06 1979 0 0

手指命令

跟踪用户活动的一个方便的命令是手指。这个命令可以让你看到谁登录或只关注用户的活动信息,查看上次登录的时间,从哪里登录等。在这个例子中,我们将跟踪用户名 nemo 的活动操作。

$finger nemo 登录:nemo 名称:Nemo 演示目录:/home/nemo Shell:/bin/bash 自 pts/1 上周五 6 月 19 日 12:58 (EDT) 开始来自 192.168.0.6 7 分 47 秒空闲 收到新邮件 2020 年 6 月 17 日星期三 18:31 (EDT) 自 2020 年 6 月 13 日星期六 18:03 (EDT) 以来未读 无计划。

我们可以看到nemo的全名、主目录和shell。我们还可以看到 nemo 最近的登录和电子邮件活动。只有在 /etc/passwd 文件中使用全名字段指定了办公室、办公室电话和家庭电话时,才会出现这些电话。例如:

nemo:x:1001:1001:Nemo Demo,11,540-222-2222,540-333-3333:/home/nemo:/bin/bash).

上面的输出也表明nemo根本没有“计划”,但这只是意味着这个用户没有创建一个.plan文件并将一些文本放入其中;没什么特别的。

不带参数,finger 命令将以如下格式显示当前登录的列表。你可以看到他们什么时候登录,他们使用的IP地址,他们使用的终端(例如pts/1)

$finger Login Name Tty Idle Login Time Office Office Phone nemo Nemo Demo pts/1 1:24 Jun 19 12:58 (192.168.0.6) shs Sandra Henry-Stocker pts/0 六月 19 12:57 (192.168.0.60

W 命令

w 命令还提供格式良好的当前活动用户列表,包括空闲时间和他们上次运行的命令。它还在顶行显示系统运行的时间,并提供平均负载以了解系统活动的级别。在这种情况下(0.00 直到第 1、5 和 15 分钟结束),系统将在很大程度上为零。

$ w 14:23:19 up 1 day, 20:24, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@IDLE JCPU PCPU WHAT shs pts/0 192.168.0.6 12:57 0.00s 0.14s 0.01sw nemo pts/1 192.168.0.6 12:58 1:24m 0.03s 0.03s-bash

命令 ID

通过id命令可以查看用户ID号和组ID(组内每个成员的ID)。此信息取自 /etc/passwd/etc/group 文件。没有参数,id 命令会报告您帐户的信息。

$ id uid=1000(shs) gid=1000(shs) groups=1000(shs),4(adm),11(admin),24(cdrom),27 (sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),500(devops) $ id nemo uid=1001(nemo) gid=1001(nemo) groups=1001(nemo), 16(鱼)

auth.log 命令

您可以使用 grep 之类的命令从文件 /var/log/auth.log 中获取信息。要使用 auth.log 数据显示最近的登录活动,请发出以下命令:

$ grep "新会话"/var/log/auth.log | awk '{打印 $1,$2,$3,$11}' |尾巴-5 六月 17 17:22:38 shs。 6 月 17 日 17:58:43 gdm。 6 月 17 日 18:09:58 秒。 6 月 19 日 12:57:36 秒。

最后一条命令

最后一个命令是查看所有用户或个人最近登录的最佳方法。请记住,最近的活动将首先显示,因为这是大多数管理员最感兴趣的信息。

$ last | head-5 nemo pts/1 192.168.0.6 6 月 19 日星期五 12:58 仍然登录 shs pts/0 192.168.0.6 6 月 19 日星期五 12:57 仍然登录 shs pts/0 192.168.0.6 6 月 18 日星期三-17 年 6 月 11 日:42 (00:32) 重启系统启动 5.4.0-37-generic Wed Jun 17 17:58 仍在运行 shs pts/2 192.168.0.6 Wed Jun 17 17:22-17:57 (00:34) $ last nemo | head-5 nemo pts/1 192.168.0.6 6 月 19 日星期五 12:58-16:21 (03:22) nemo pts/2 192.168.0.6 6 月 13 日星期六 17:49-19:05 (01:16) nemo 1 192.168.0.6 Thu Jun 4 17:33-17:44 (00:10) nemo pts/1 192.168.0.19 Mon May 11 19:04-19:57 (00:52) nemo pts/1 8.1 Tue.16 1902 5 12:46-17:49 (05:02)

杜令

如果像这样运行每个/home 目录,du 命令将报告每个用户的 home 目录 使用了多少空间:

$ sudo du-sk/home/* 289/home/dorothy 116/home/dory 88/home/eel 28/home/gino 28/home/jadep 12764/home/nemo 732/home/shark 418046/home/shs 108/home/tadpole

默认情况下,大小以 1024 字节为单位报告。

Ps 命令和历史

对于当前登录的用户,您可以随时使用诸如 ps-ef | 之类的命令。 grep ^ nemo 查看用户当前正在运行哪些命令和进程。要查看之前运行的命令,您可以尝试查看用户的历史文件(例如.bash_history),但请注意,用户可以设置其帐户,以便不显示某些命令。在历史文件中,如果需要,他们还可以编辑这些文件。

统计登录次数

如果您想查看自上次运行 /var/log/wtmp 文件以来每个用户的登录次数,请使用像这样的命令:

$ for USER in `ls/home` >做 > cnt=`last $USER | grep ^$USER | wc-l` # 计数登录 > echo $USER: $cnt # 显示登录次数 >完成

输出将如下所示:

dorothy: 0 dory: 0 eel: 8 gino: 0 jadep: 102 nemo: 39shark: 50 shs: 105 tadpole: 0

如果您需要更多详细信息,可以订购更复杂的脚本,可能会添加一些额外信息,例如登录详细信息和格式。

#!/bin/bash sepline="======================" 用于 `ls/home 中的用户` do len=`echo $USER | awk '{print length($0)}'` # 获取用户名长度 echo $USER sep="${sepline:1:$len}" # 设置分隔符 echo $sep # 打印分隔符 cnt=`last $USER | grep ^$USER | wc-l` # 登录次数 echo logins: $cnt # 显示最后登录次数 $USER | grep ^$USER | head-5 # 显示最近登录 echo

上述脚本限制了最近五次登录时显示的数据,但如果需要,可以轻松更改。以下是用户数据的格式:

shs=== logins: 105 shs pts/0 192.168.0.6 Fri Jun 19 12:57 仍然登录 shs pts/0 192.168.0.6 Wed Jun 17 18:10-18:42 (00:32) shs pts/2 192.168.0.6 Wed Jun 17 17:22-17:57 (00:34) shs pts/0 192.168.0.25 6 月 17 日星期三 17:20-07:57 36) shs pts/1 192.168.0.6 Wed Jun 17 15:19-17:57 (02:38)
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *