找回密码
 立即注册
首页 业界区 安全 [linux]记账工具-监控用户活动

[linux]记账工具-监控用户活动

龙骋唧 22 小时前
前言

记账工具可以提供诸如 Linux 系统中的连接、已执行的程序以及系统资源的使用等有底系统使用信息。这些记账工具可以通过 psacct 或 acct 软件包安装。
psacct 和 acct 实际上是相同的。在基于 RPM 的系统中,它以 psacct 的形式存在;而在基于 DEB 的系统中,它作为 acct 提供。
安装

大多流行的Linux发行版中都有 psacct或acct,例如debian中安装:
  1. sudo apt install -y acct
复制代码
启动

在 debian 上,acct 安装后就会被启动并设置为自动启动,可以通过以下命令查看
  1. sudo systemctl status acct
复制代码
如果没有启动,可以用如下命令启动
  1. sudo systemctl start acct
  2. sudo systemctl enable acct
复制代码
使用

acct 软件包包含以下用来监测用户和进程活动的工具:

  • ac - 提供用户登录时间的统计信息。
  • lastcomm - 展示先前执行过的命令的信息。
  • accton - 开启或关闭进程记账。
  • dump-acct - 把 accton 的输出文件转化为易读的格式。
  • dump-utmp - 以易读的方式打印 utmp 文件。
  • sa - 汇总信息,关于先前执行的命令。
ac

ac 工具可以为你提供以小时为单位的连接时间报告,这样你就能知道用户或一组用户连接到系统的时长。
  1. # 展示所有用户的总连接时间
  2. ac
  3. # 按日期排序所有用户的总连接时间
  4. ac -d
  5. # 获取各个用户的总连接时间
  6. ac -p
  7. # 获取 rainux 用户的总连接时间
  8. ac rainux
复制代码
lastcomm

lastcomm 工具用于列出过去执行过的命令,它会按执行的最近程度将命令列在前面。
  1. # 展示过去执行的命令
  2. sudo lastcomm
  3. # 展示特定用户过去执行的命令
  4. sudo lastcomm username
  5. # 展示特定命令过去被执行的次数
  6. sudo lastcomm git
复制代码
sa

sa 实用程序将总结关于先前执行的命令的信息。(可能需要使用绝对路径才能使用)
  1. # 打印所有命令的总结
  2. sudo /usr/sbin/sa
复制代码
示例输出。每一行代表一个命令(或命令组)的统计汇总。第一列为该命令被执行的总次数。第二列为该命令总实际时间(real time, 从开始到结束,包括等待IO、睡眠等),单位分钟。第三列为总CPU时间(实际占用CPU的时间),单位为分钟。第四列为平均IO操作数(average io operations, 通常为 0,除非系统启用了详细 I/O 统计)。第五列为平均内存占用,这是RSS(平均驻留集)的近似值。第六列为命令名,带*表示该命令是以 SUID/SGID 方式运行的(即提权执行)。
第一行为汇总行
  1. sudo /usr/sbin/sa
  2.     1783     314.68re       0.02cp         0avio      2791k
  3.       15       1.12re       0.02cp         0avio      3223k   ***other*
  4.       63       6.84re       0.00cp         0avio     40741k   postgres*
  5.        7     305.02re       0.00cp         0avio         0k   kworker/dying*
  6.        2       0.06re       0.00cp         0avio      4114k   systemctl
  7.        4       0.11re       0.00cp         0avio      2335k   dpkg
  8.      739       0.04re       0.00cp         0avio       645k   sh
  9.      231       0.00re       0.00cp         0avio      1368k   cat
  10.      230       0.00re       0.00cp         0avio      1639k   awk
  11.      133       0.00re       0.00cp         0avio      1617k   grep
  12.       72       0.00re       0.00cp         0avio      1908k   lsblk
  13.       48       0.00re       0.00cp         0avio      2488k   ps
  14.       24       0.00re       0.00cp         0avio      1370k   wc
  15.       24       0.00re       0.00cp         0avio       645k   trystart.sh*
  16.       19       0.01re       0.00cp         0avio       738k   install-info
  17.       19       0.00re       0.00cp         0avio       835k   gzip
  18.       15       0.00re       0.00cp         0avio      1652k   cron*
  19.       14       0.00re       0.00cp         0avio      1366k   flock
  20.       12       0.00re       0.00cp         0avio      1734k   start.sh
  21.       12       0.00re       0.00cp         0avio       645k   trystart.sh
  22.       12       0.00re       0.00cp         0avio      1734k   start.sh*
  23.       12       0.00re       0.00cp         0avio      1373k   chmod
  24.       12       0.00re       0.00cp         0avio      1367k   dirname
  25.       12       0.00re       0.00cp         0avio      1367k   whoami
  26.       11       0.00re       0.00cp         0avio       620k   ac
  27.        8       0.32re       0.00cp         0avio      2299k   sudo
  28.        7       1.12re       0.00cp         0avio      2292k   git
  29.        5       0.01re       0.00cp         0avio      1365k   whereis
  30.        5       0.00re       0.00cp         0avio       925k   lastcomm
  31.        4       0.00re       0.00cp         0avio       850k   iptables
  32.        3       0.00re       0.00cp         0avio      2125k   bash*
  33.        3       0.00re       0.00cp         0avio       645k   which
  34.        2       0.04re       0.00cp         0avio      3484k   ssh
  35.        2       0.00re       0.00cp         0avio    204544k   YDService
  36.        2       0.00re       0.00cp         0avio       629k   rm
复制代码
打印基于每个用户的进程数量和 CPU 分钟数
  1. sudo /usr/sbin/sa -m
复制代码
dump-acct和dump-utmp

dump-acct 实用工具将 accton 格式的输出文件显示为人类可读的格式。
  1. dump-acct /var/log/account/pacct
复制代码
dump-utmp 将 utmp 文件显示为人类可读的格式。
  1. dump-utmp /var/run/utmp
复制代码
accton

accton 命令将允许你开启或关闭记账。
  1. # 开启
  2. accton on
  3. # 关闭
  4. accton off
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册