Linux记账工具如何监控用户活动细节?
摘要:前言 记账工具可以提供诸如 Linux 系统中的连接、已执行的程序以及系统资源的使用等有底系统使用信息。这些记账工具可以通过 psacct 或 acct&
前言
记账工具可以提供诸如 Linux 系统中的连接、已执行的程序以及系统资源的使用等有底系统使用信息。这些记账工具可以通过psacct或acct软件包安装。
psacct和acct实际上是相同的。在基于 RPM 的系统中,它以psacct的形式存在;而在基于 DEB 的系统中,它作为acct提供。
安装
大多流行的Linux发行版中都有 psacct或acct,例如debian中安装:
sudo apt install -y acct
启动
在 debian 上,acct 安装后就会被启动并设置为自动启动,可以通过以下命令查看
sudo systemctl status acct
如果没有启动,可以用如下命令启动
sudo systemctl start acct
sudo systemctl enable acct
使用
acct 软件包包含以下用来监测用户和进程活动的工具:
ac- 提供用户登录时间的统计信息。
lastcomm- 展示先前执行过的命令的信息。
accton- 开启或关闭进程记账。
dump-acct- 把accton的输出文件转化为易读的格式。
dump-utmp- 以易读的方式打印utmp文件。
sa- 汇总信息,关于先前执行的命令。
ac
ac工具可以为你提供以小时为单位的连接时间报告,这样你就能知道用户或一组用户连接到系统的时长。
# 展示所有用户的总连接时间
ac
# 按日期排序所有用户的总连接时间
ac -d
# 获取各个用户的总连接时间
ac -p
# 获取 rainux 用户的总连接时间
ac rainux
lastcomm
lastcomm工具用于列出过去执行过的命令,它会按执行的最近程度将命令列在前面。
# 展示过去执行的命令
sudo lastcomm
# 展示特定用户过去执行的命令
sudo lastcomm username
# 展示特定命令过去被执行的次数
sudo lastcomm git
sa
sa实用程序将总结关于先前执行的命令的信息。(可能需要使用绝对路径才能使用)
# 打印所有命令的总结
sudo /usr/sbin/sa
示例输出。每一行代表一个命令(或命令组)的统计汇总。第一列为该命令被执行的总次数。第二列为该命令总实际时间(real time, 从开始到结束,包括等待IO、睡眠等),单位分钟。第三列为总CPU时间(实际占用CPU的时间),单位为分钟。第四列为平均IO操作数(average io operations, 通常为 0,除非系统启用了详细 I/O 统计)。第五列为平均内存占用,这是RSS(平均驻留集)的近似值。第六列为命令名,带*表示该命令是以 SUID/SGID 方式运行的(即提权执行)。
