在Linux机器上,有一些进程定期更改目录和文件的权限,大致每天。这不是我设置的过程,我不知道它是什么。
我有root权限,我可以轻松手动更改权限以获取访问权限,但这有点烦人。
有没有办法查看最后触及文件的进程列表?或者我如何在文件上记录进程活动。
答案 0 :(得分:11)
在Fedora系统上,您可以使用:
sudo auditctl -p a -w /some/file # monitor attribute changes to /some/file
它位于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
它有点密集,但请注意msg=audit(###)
个字符串排成一行。
-Farch=b32
/ -Farch=b64
的注意事项,所以似乎有一些关于32位-d-的可能的怪异64位系统调用,所以如果你没有得到审计命中,那可能就是原因。我以前从未见过这一点,但自从Athlon时代以来我没有真正运行任何32位进程,所以我不能说得很好。答案 1 :(得分:3)
如果您需要监控某些文件或目录的更改,inotify可能会有所帮助。
在bash中有inotifywait(你可以找到一个关于如何使用它的一个很好的例子here),在python中(以防你考虑使用它)有一个名为{{3}的库}。