Das sollte einfach sein, aber ich bringe es nicht dazu, im Test zu arbeiten.
In einer von mir verwendeten Torrent-Anwendung (CLI-basiert) können Benutzer / Gruppen / Berechtigungen der heruntergeladenen Dateien noch nicht definiert werden. Es macht auch Spaß, die Berechtigungen der Dateien so festzulegen, dass sie nicht wesentlich geändert werden können.
Ich möchte set-uid und set-group-id verwenden, um dies zu lösen.
Gegeben ein Pfad von so etwas: / Volumes / Torrents / Movies
Ich möchte, dass das Verzeichnis "movies" allen Benutzern auf dem System vollständigen Lese- und Schreibzugriff gewährt. Dateien sollten nicht ausführbar sein, aber natürlich müssen die Verzeichnisse vorhanden sein, um von CD in sie zu öffnen. Ich vertraue allen Benutzern auf diesem System, obwohl ich es unterlassen werde, Bits für Dateien auszuführen, um versehentliche Fehler zu vermeiden.
Alles, was in "Filmen" gespeichert / gespeichert ist, sollte die Benutzer- / Gruppen- / Zugriffsrechte von Filmen erben und in alle Unterverzeichnisse und Dateien gelangen. Auf diese Weise sollte ich mir keine Sorgen um die Funktion zum Festlegen fehlender Berechtigungen in der Anwendung machen müssen. Wenn movies auf rw für foo: bar und user eingestellt ist, kommt the_user und fügt eine Datei in die Filme ein. Ich würde erwarten, dass die Dateien zu rw foo: bar werden.
Vielen Dank. Ich habe es auf verschiedene Arten versucht und bin kurz davor. Ich verwende selten set-uid und set-group-id oder die Sticky-Bits.
quelle
Antworten:
Das Beste, was Sie tun können, ist, das Verzeichnis setgid zu erstellen, wodurch die darin erstellten Dateien und Verzeichnisse den Gruppeneigentümer des Verzeichnisses erhalten. Das setgid-Bit wird jedoch nicht geerbt werden, was bedeutet, dass auf alles, was über die erste Ebene hinausgeht, der Gruppeneigentum nicht angewendet wird. Die einzige Möglichkeit, dies zu beheben, besteht darin, Cron oder Incron zu verwenden, um die Berechtigungsänderungen entsprechend anzuwenden.
quelle
Ich gehe davon aus, dass Sie Mac OS X verwenden, basierend auf Ihren vorherigen Fragen und dem Ordner "/ Volumes", den Sie erwähnt haben.
Ich habe einen Tipp von Dieser Beitrag Hier wird gezeigt, wie ein AppleScript erstellt und als Ordneraktion angehängt wird, mit der Berechtigungen für alle im Ordner abgelegten Dateien festgelegt werden. Hier ist das Skript, wie ich es gerade getestet habe:
Geben Sie dies in den AppleScript-Editor ein und speichern Sie es unter / Library / Scripts / Folder Actions Scripts. Klicken Sie dann mit der rechten Maustaste auf den Ordner und wählen Sie "Ordneraktionen einrichten ..." (oder "Ordneraktion anhängen" für Leopard oder älter). Hängen Sie Ihr Skript an und testen Sie es. Legen Sie ein Element in den Ordner ab und es sollte rekursiv alles chmodieren, um das Lesen / Schreiben für alle zu ermöglichen.
Dies funktioniert, wenn Sie etwas direkt in den Ordner ziehen, einschließlich eines anderen Ordners: Alle Inhalte werden rekursiv aktualisiert. Wenn Sie jedoch Dateien in einen bereits vorhandenen Unterordner ablegen, wird die Ordneraktion nicht aufgerufen. Ich habe keinen Weg gefunden, das zu beheben.
quelle
Die in einer anderen Antwort verlinkte Wikipedia-Seite widerspricht der Antwort selbst: Das Set-GID-Bit wird normalerweise vererbt. Dies gilt sicherlich für Linux, und ich glaube an Solaris. Unter Mac OS X scheint dies jedoch nicht der Fall zu sein Handbuchseite Anscheinend geht es mehr um ACLs als um normale Berechtigungen. Vielleicht haben Sie also etwas Glück mit den Berechtigungen file_inherity und directory_inherit in Kombination mit den herkömmlichen Berechtigungen.
quelle