记录程序的使用

记录程序的使用

我正在尝试找到一种方法来记录其他用户在系统上使用过的程序。我检查了 /var/log,但似乎找不到任何显示已访问过哪些程序的内容。我正在查看历史使用情况,因此 ps、top 或 free 不可行。

谢谢!

答案1

Linux内核具有审计功能。

您可以安装这些软件包auditdsystem-config-audit利用此功能。

sudo apt-get install auditd system-config-audit

然后,为了避免稍后出现的错误,请创建一个符号链接/usr/sbin/service/sbin/

sudo ln -s /usr/sbin/service /sbin/

然后启动配置界面:

gksu system-config-audit

在此处输入图片描述

配置

在此处输入图片描述

然后点击按钮编辑靠近文件手表

在此处输入图片描述

点击添加按钮

在此处输入图片描述

然后输入要监视的可执行文件的详细信息,以及可选的独特字符串(仅LS在此处),如以下屏幕截图所示

在此处输入图片描述

按确定、确定、保存并保存。

现在你可以使用以下命令查看受监控事件的日志

sudo less /var/log/audit/audit.log

你应该得到类似以下内容的输出:

type=DAEMON_START msg=audit(1325523963.095:8698): auditd start, ver=1.7.13 format=raw kernel=3.0.0-14-generic auid=4294967295 pid=31838 subj=unconfined  res=success
type=CONFIG_CHANGE msg=audit(1325523963.196:35): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325523963.196:36): audit_backlog_limit=320 old=320 auid=4294967295 ses=4294967295 res=1
type=DAEMON_END msg=audit(1325524792.575:8699): auditd normal halt, sending auid=0 pid=32105 subj= res=success
type=DAEMON_START msg=audit(1325524792.613:8877): auditd start, ver=1.7.13 format=raw kernel=3.0.0-14-generic auid=4294967295 pid=32115 subj=unconfined  res=success
type=CONFIG_CHANGE msg=audit(1325524792.712:39): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524792.712:40): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524792.712:41): audit_failure=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524792.716:42): audit_backlog_limit=320 old=320 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524792.716:43): audit_rate_limit=0 old=0 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524792.716:44): auid=4294967295 ses=4294967295 op="add rule" key="ls" list=4 res=1
type=DAEMON_END msg=audit(1325524929.107:8878): auditd normal halt, sending auid=0 pid=32168 subj= res=success
type=DAEMON_START msg=audit(1325524929.139:3658): auditd start, ver=1.7.13 format=raw kernel=3.0.0-14-generic auid=4294967295 pid=32178 subj=unconfined  res=success
type=CONFIG_CHANGE msg=audit(1325524929.241:48): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524929.241:49): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524929.241:50): audit_failure=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524929.241:51): audit_backlog_limit=320 old=320 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524929.241:52): audit_rate_limit=0 old=0 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325524929.241:53): auid=4294967295 ses=4294967295 op="add rule" key="ls" list=4 res=1
type=DAEMON_END msg=audit(1325525132.140:3659): auditd normal halt, sending auid=0 pid=32407 subj= res=success
type=DAEMON_START msg=audit(1325525132.173:6001): auditd start, ver=1.7.13 format=raw kernel=3.0.0-14-generic auid=4294967295 pid=32417 subj=unconfined  res=success
type=CONFIG_CHANGE msg=audit(1325525132.274:57): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325525132.274:58): audit_enabled=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325525132.274:59): audit_failure=1 old=1 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325525132.274:60): audit_backlog_limit=320 old=320 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325525132.278:61): audit_rate_limit=0 old=0 auid=4294967295 ses=4294967295 res=1
type=CONFIG_CHANGE msg=audit(1325525132.278:62): auid=4294967295 ses=4294967295 op="add rule" key="ls" list=4 res=1
type=SYSCALL msg=audit(1325525137.354:63): arch=c000003e syscall=59 success=yes exit=0 a0=2506d48 a1=2500308 a2=249a008 a3=7fffe4130170 items=2 ppid=30147 pid=32431 auid=4294967295 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=4294967295 comm="ls" exe="/bin/ls" key="ls"
type=EXECVE msg=audit(1325525137.354:63): argc=5 a0="ls" a1="--color=auto" a2="--group-directories-first" a3="--time-style=long-iso" a4="--ignore-backups"
type=CWD msg=audit(1325525137.354:63):  cwd="/home/enzotib"
type=PATH msg=audit(1325525137.354:63): item=0 name="/bin/ls" inode=389459 dev=08:02 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1325525137.354:63): item=1 name=(null) inode=395716 dev=08:02 mode=0100755 ouid=0 ogid=0 rdev=00:00

在最后一行,你可以看到ls对测试的调用。好吧,日志文件读起来不是那么简单,但通过一些文本处理,你可以得到你想要的输出。

相关内容