Ich habe "chattr + i DIRNAME" ausprobiert, es ist großartig, aber ich kann nach chattr keine Dateien im DIR erstellen. Was kann Benutzer sonst noch daran hindern, ein Verzeichnis zu löschen?
root@HOST ~] mkdir test
[root@HOST ~] chattr +i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
touch: cannot touch `sth': Permission denied
[root@HOST ~/test] cd ..
[root@HOST ~] chattr -i test
[root@HOST ~] cd test
[root@HOST ~/test] touch sth
[root@HOST ~/test]
UPDATE: Nur das Löschen des Verzeichnisses ist wichtig, daher müssen die Dateien darin noch gelöscht werden
permissions
files
gasko peter
quelle
quelle
/tmp
und an/var/tmp
. Während jeder Benutzer dort Dateien erstellen kann, kann er nur seine eigenen Dateien / Verzeichnisse löschen, nicht jedoch das Verzeichnis selbst.Antworten:
Was ist also falsch an einem einfachen Chown / Chmod?:
OK, lassen Sie mich Ihnen sagen, was daran falsch ist: Jeder Benutzer hat
question
aufgrund der777
Berechtigungen Zugriff auf jede Datei im Verzeichnis . Es ist besser zugroupadd question
mkdir question
chown root:question ./question
chmod 770 ./question
usermod -G group user
Der wichtige Trick dabei ist, dass das Verzeichnis einen anderen Eigentümer hat als alle Benutzer, die versuchen, es zu löschen.
quelle
sudo chmod o+t ..
, um dast
Flag im übergeordneten Verzeichnis zu setzen. Dast
Flag erlaubt es nicht, eine Datei zu entfernen, die nicht dem Benutzer gehört.t
wird häufig verwendet/tmp
, um genau das zu tun. UserA kann keine Dateien löschen, die UserB gehören.Erstellen Sie eine Datei ".protected" und tun Sie dies als root
Sie können dann alle Dateien außer
.protected
in diesem Verzeichnis löschen , sodass das Verzeichnis von keinem anderen Benutzer gelöscht werden kann.quelle
sollte den Job machen. Sie können darin Dateien erstellen, diese jedoch nicht löschen.
quelle