Inotify -如何找出哪个用户修改了文件



我正在寻找关于如何找出哪个用户修改了特定文件的指导。虽然inotify对于在特定文件被触摸时获得通知非常有用,但如何确定是哪个用户修改了该文件?我可以考虑使用lsof,但我担心它可能不像我想要的那样"实时",而且/或者它可能会对资源造成太多的负担。通过实时,我的意思是,如果用户只是在文件上执行touch命令,那么当我在文件上运行lsof时,它可能不会被lsof拾取。

可以使用:

sudo apt-get install auditd

选择要监视的文件

touch /tmp/myfile

添加写和属性更改审计(-p wa):

sudo auditctl -w /tmp/myfile -p wa -k my-file-changed

文件被某个用户触摸:

touch /tmp/myfile

检查审计日志:

sudo ausearch -k my-file-changed | tail -1

您可以在输出

中看到运行该命令的用户的UID

type=SYSCALL msg=audit(1313055675.066:57): arch=c000003e SYSCALL =2Success =yes exit=3 a0=7ffffb6744dd a1=941 a2=1b6 a3=7ffffb673bb0items=1 ppid=3428 pid=4793 auid=4294967295 uid=1000 gid=1000 euid=1000Suid =1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1Ses =4294967295 comm="touch" exe="/bin/touch" key="my-file-changed"

有关详细用法,请参阅手册页或本示例指南。

如果在前面的命令中添加-i选项,您将获得更易于人类阅读的输出格式。您将在服务器中将uid转换为实际用户名。

相关内容

  • 没有找到相关文章

最新更新