如何查看文件夹访问权限何时改变?
该文件夹现在具有 777 权限,我想知道何时为其运行 chmod 命令。 可能吗?
我的操作系统是 Ubuntu。
谢谢。
答案1
您只能使用以下命令读取 i-node 的最后修改时间
stat DIRECTORY
您看不到发生了什么变化,但对于文件夹来说,大多数情况下它应该是匹配的。
如果你喜欢监控权限,可以使用 cron 任务来检查文件夹的权限。例如
export MYFOLDER=/my/path/to/folder; if [ $(stat -c "%a" $MYFOLDER) != "777" ]; then chmod 777 $MYFOLDER; echo $MYFOLDER permission changed > /var/log/myfolder.log ;fi
更新:如果你想了解更改的历史记录以及谁做了什么,请安装审计并开始服务。
为您的文件夹配置规则:
auditctl -w /tmp/test -p a -k tmp-watch-test
您可以看到
ausearch -k tmp-watch-test
或者
ausearch -w -f /tmp/test
应该为变化产生类似的东西
type=PATH msg=audit(1496747062.420:20649): item=0 name="/tmp/test" inode=453007 dev=fd:00 mode=040775 ouid=1000 ogid=1000 rdev=00:00 objtype=NORMAL
type=CWD msg=audit(1496747062.420:20649): cwd="/home/myuser/workdir"
type=SYSCALL msg=audit(1496747062.420:20649): arch=c000003e syscall=268 success=yes exit=0 a0=ffffffffffffff9c a1=120c0f0 a2=1ed a3=7ffc37c58930 items=1 ppid=20482 pid=21369 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=2895 comm="chmod" exe="/usr/bin/chmod" key="tmp-watch-test"
答案2
如果您需要“实时”通知更改,您可以使用包inotifywait
中的inotify-tools
通知。在 bash 脚本中最基本的形式是:
inotifywait $thewatcheddirectory # will exit if something happens
echo "Something happened to $thewatcheddirectory"
实际上,inotifywait
输出提示了发生了什么变化,您可以选择要检查哪些事件。