Wie kann ich sehen, wenn die Ordnerzugriffsberechtigung geändert wird?

337
hd.

Wie kann ich sehen, wenn die Ordnerzugriffsberechtigung geändert wird?

Der Ordner hat jetzt die Berechtigung 777 und ich möchte wissen, wann der Befehl chmod für ihn ausgeführt wird. Ist es möglich?

Mein Betriebssystem ist Ubuntu.

Vielen Dank.

0
Haben Sie die .bash_history-Datei überprüft? Overmind vor 7 Jahren 0

2 Antworten auf die Frage

0
Rainer

Sie können nur die letzte Änderungszeit des i-node mit lesen

stat DIRECTORY 

Sie können nicht sehen, was geändert wurde, aber für Ordner sollten die meisten Zeiten zutreffen.

Wenn Sie die Berechtigung überwachen möchten, verwenden Sie einen Cron-Job, um die Berechtigung des Ordners zu überprüfen. So etwas wie

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 

UPDATE: Wenn Sie eine Änderungshistorie haben möchten und wer die Änderungen vorgenommen hat, installieren Sie auditd und starten Sie den Dienst.

Konfigurieren Sie eine Regel für Ihren Ordner:

auditctl -w /tmp/test -p a -k tmp-watch-test 

Sie können sehen, was passiert mit

ausearch -k tmp-watch-test 

oder

ausearch -w -f /tmp/test 

sollte so etwas für Änderungen produzieren

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" 
0
xenoid

Wenn Sie eine Echtzeitbenachrichtigung über die Änderung benötigen, können Sie sie inotifywaitaus dem inotify-toolsPaket heraus verwenden. In der einfachsten Form in einem Bash-Skript:

inotifywait $thewatcheddirectory # will exit if something happens echo "Something happened to $thewatcheddirectory" 

In der Praxis weist die inotifywaitAusgabe darauf hin, was sich geändert hat, und Sie können auswählen, welche Ereignisse geprüft werden sollen.