查看上次触摸文件的进程

evo*_*ion 9 linux bash

在Linux机器上,有一些进程定期更改目录和文件的权限,大致每天.这不是我设置的过程,我不知道它是什么.

我有root访问权限,我可以轻松地手动更改权限以获取访问权限,但这有点烦人.

有没有办法查看最后触及文件的进程列表?或者我如何在文件上记录进程活动.

BRP*_*ock 12

在Fedora系统上,您可以使用:

sudo auditctl -p a -w /some/file  # monitor attribute changes to /some/file
Run Code Online (Sandbox Code Playgroud)

它在audit包中,如果你没有安装,那么sudo yum install audit

输出进入/var/log/audit/audit.log以下形式:

  type=SYSCALL msg=audit(1325185116.524:1133): arch=c000003e syscall=2 success=yes exit=3 a0=671600 a1=241 a2=1b6 a3=9 items=1 ppid=26641 pid=26643 auid=501 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="jmacs" exe="/usr/bin/joe" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
  type=CWD msg=audit(1325185116.524:1133):  cwd="/tmp"
  type=PATH msg=audit(1325185116.524:1133): item=0 name="/etc/passwd" inode=531545 dev=fd:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0
Run Code Online (Sandbox Code Playgroud)

它有点密集,但请注意msg=audit(###)字符串排成一行.

  • 现在我实际上第一次阅读了联机帮助页,我看到一些关于使用-Farch=b32/的注意事项-Farch=b64,所以看起来有一些关于32位vs64位系统调用的可能的怪异,所以如果你没有得到一个审计命中,这可能是原因.我以前从未真正看过这一点,但自从Athlon时代以来我没有真正运行任何32位进程,所以我不能很好地说出来.

  • 在Debian/Ubuntu上,所需的包名为`auditd`. (4认同)