Ist es mit dem Linux-Berechtigungsschema möglich, Benutzern das Erstellen von Dateien zu ermöglichen, diese jedoch zu einem späteren Zeitpunkt nicht zu bearbeiten oder zu löschen? Ich meine, wir haben einen Lieferordner, in dem Benutzer Artefakte ablegen, und wir möchten nicht, dass diese Artefakte nach der Lieferung geändert, dh bearbeitet oder gelöscht werden.
linux
permissions
synchronization
Gilles 'SO - hör auf böse zu sein'
quelle
quelle
Antworten:
Das können Sie nicht tun: Wenn der Benutzer Dateien erstellen kann, gehören diese ihm und er kann sie ändern und löschen.
Ich wollte ein einfaches Schema vorschlagen, um ein Staging-Verzeichnis (in dem der Benutzer tun kann, was er will) und ein eingehendes Verzeichnis (für den Benutzer nicht zugänglich) mit einem kleinen privilegierten Programm zum Verschieben von Dateien aus dem Staging-Verzeichnis in das eingehende Verzeichnis zu haben Verzeichnis. Aber es ist tatsächlich schwierig, es richtig zu machen: Unter anderem müssen Sie darauf achten, dass das privilegierte Programm keine Dateien in anderen Verzeichnissen verschiebt (Vorsicht vor Rennbedingungen, symbolischen Links
../
), vorhandene Dateien nicht überschreibt (rename(3)
atomar ist, aber kann) Löschen des Ziels), lässt den Benutzer keinen Dateideskriptor geöffnet und ändert die Datei nach dem Verschieben (Sie sollten also besser kopieren als verschieben). Stattdessen empfehle ich eine vorhandene, robuste Lösung:quelle
NEIN
Sie haben jedoch andere Optionen, wie von @Fredrik im Kommentar zu Ihrer Frage vorgeschlagen. Siehe hier.
quelle
Hier ist ein Ansatz, der theoretisch funktionieren sollte. Es ist zu viel Aufwand für mich, auch nur einen Proof-of-Concept zu entwickeln. Sie können es aus dem gleichen Grund ablehnen. Und genau genommen bedeutet dies nicht, dass das Linux-Berechtigungsschema verwendet wird.
/mnt/delivery
und weisen Sie Ihre Benutzer an, ihre Dateien dort abzulegen.quelle
Die einfache Antwort besteht darin, ein Skript in einem bestimmten Intervall auszuführen, das Sie auswählen (z. B. alle 15 Minuten), das einem vorgegebenen "Administrator" -Benutzer den Besitz aller Dateien im Verzeichnis "upload" neu zuweist und die Berechtigungen auf "644" setzt. Auf diese Weise können alle Benutzer schreibgeschützt auf alle Dateien im Upload-Verzeichnis zugreifen, einschließlich der Dateien, die sie selbst hochgeladen haben. Natürlich können Sie das Skript nach dem ersten Durchlauf optimieren, um nur die Dateien mit Erstellungsdaten nach dem vorherigen Durchlauf des Skripts zu durchsuchen (z. B. in den letzten 17 Minuten).
quelle