Wie kann man setfacl dazu bringen, ACL-Berechtigungen unter Linux rekursiv festzulegen?

20

Ich habe einen neuen Server eingerichtet und wollte ACL einen Test über die Berechtigungen für den Stil chown: chgrp: chmod geben.

Die Manpage für setfacl gibt an, dass die Option '-R' verwendet werden kann, um die ACL für Dateien und Verzeichnisse rekursiv festzulegen.

-R, --recursive Wendet Operationen rekursiv auf alle Dateien und Verzeichnisse an. Diese Option kann nicht mit '--restore' gemischt werden.

Wenn mein Verzeichnislayout so aussieht

test/
   subtest/
   subtest.txt

und ich führe aus

setfacl -Rm d:u:foo:rwX test

Die ACL wirkt sich auf das Verzeichnis 'subtest' aus, nicht jedoch auf die Datei subtest.txt.

Ich denke, ich kann find + exec verwenden, um das Problem zu umgehen, aber ich plane, diesen Server zu verwenden, um ein paar andere Administratoren zu schulen, und ich möchte es so einfach wie möglich halten, damit wir uns nicht auf die fortgeschritteneren einlassen Konventionen.

Vielen Dank

Joe Holloway
quelle

Antworten:

43

Versuchen:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

um die aktuelle ACL sowie die Standardeinstellung zu ändern. Ich glaube, "d:" wirkt sich nur auf die (d) Standard-ACL von Verzeichnissen aus und lässt Dateien unberührt. Wenn Sie dann eine neue Datei im Verzeichnis erstellen , übernimmt diese standardmäßig die Zugriffssteuerungsliste des übergeordneten Verzeichnisses.

Bis auf weiteres angehalten.
quelle
Das macht auch dann Sinn, wenn es sich ein bisschen überflüssig anfühlt
Joe Holloway
1
Funktioniert dies auch zum Entfernen der Zugriffskontrolle? Vielleicht etwas in der Art von: sudo setfacl -Rx g: gid path
Warum bricht ein Ortswechsel zwischen -Rund -mden Befehl ab?
Karamol
@pkaramol: Da die -mOption ein Argument akzeptiert ( u:foo:rwX,d:u:foo:rwXin diesem Fall die ACL-Spezifikation ) und die Reihenfolge der Optionen wechselt, wird die Option von ihrem Argument getrennt. Es kann auch sein, dass setfaclcodiert wird, um zuerst seine Hauptoptionen zu erwarten.
Bis auf weiteres angehalten.