Schützen Sie das Überschreiben von Ordnerinhalten

Schützen Sie das Überschreiben von Ordnerinhalten

Gibt es eine Möglichkeit (mit ACLs), den Inhalt eines Ordners zu schützen? Benutzer sollten Dateien in einem Ordner erstellen, diese aber nicht überschreiben/bearbeiten/löschen können. Ist das möglich?

Antwort1

Man kann inotifywaitdas Verzeichnis überwachen und Änderungen vornehmen, z. B. den Eigentümer jeder neuen Datei ändern, die in das Verzeichnis kopiert wird. In einer Debian-basierten Distribution installieren Sie die Software wie folgt: apt-get install inotify-tools.

Erstellen Sie beispielsweise ein Skript /usr/local/sbin/inbox.shwie folgt.

#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
    if [ "$event" = "CREATE" ]; then
        chown root:root "$path$file"
    fi
done

Geben Sie dem Skript die Berechtigung zur Ausführung ( chmod 0700 /usr/local/sbin/inbox.sh). Führen Sie es dann beim Systemstart aus, beispielsweise von /etc/rc.localoder von der entsprechenden RC-Datei: /usr/local/sbin/inbox.sh &.

Entsprechend derHandbuch, -müberwacht auf unbestimmte Zeit und -ehält nach einem bestimmten Ereignis Ausschau. Innerhalb der whileSchleife könnte ein Ereignis wie empfangen werden CREATE,ISDIR, das natürlich die Erstellung eines Verzeichnisses anzeigt. Verzeichnisse sind nicht das Ziel der Frage; daher ifenthält die Anweisung einen Befehl, nur auf neue Dateien zu reagieren, die durch das Ereignis dargestellt werden CREATE. Die pathVariable von inotifywaithat einen abschließenden Schrägstrich, daher können $pathund $fileaneinandergereiht werden, ohne dass zwischen den beiden ein Schrägstrich angegeben werden muss.

verwandte Informationen