W jaki sposób można ustawić setfacl w celu rekurencyjnego ustawiania uprawnień ACL w systemie Linux?

20

Konfiguruję nowy serwer i chciałem dać ACL szansę na sprawdzenie uprawnień: chgrp: uprawnienia w stylu chmod.

Strona podręcznika dla setfacl wskazuje, że opcji „-R” można użyć do ustawiania listy ACL rekurencyjnie w plikach i katalogach.

-R, --recursive Rekurencyjnie stosuj operacje do wszystkich plików i katalogów. Tej opcji nie można łączyć z „--restore”.

Jeśli mój układ katalogu wygląda tak

test/
   subtest/
   subtest.txt

i wykonuję

setfacl -Rm d:u:foo:rwX test

Lista ACL działa na katalog „podtest”, ale nie na plik subtest.txt.

Myślę, że mogę użyć find + exec, aby to obejść, ale planuję użyć tego serwera, aby wyszkolić kilku innych administratorów i chcę, aby było to tak proste, jak to możliwe, abyśmy nie rozłączali się z bardziej zaawansowanymi konwencje.

Dzięki

Joe Holloway
źródło

Odpowiedzi:

43

Próbować:

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

aby zmodyfikować bieżącą listę ACL, a także domyślną. Uważam, że „d:” wpływa tylko na (d) efault ACL katalogów i pozostawia pliki nietknięte. Następnie, jeśli utworzysz nowy plik w katalogu, domyślnie odziedziczy on ACL swojego katalogu nadrzędnego.

Wstrzymano do odwołania.
źródło
Ma to sens, nawet jeśli wydaje się nieco zbędne
Joe Holloway
1
Czy działa to również w przypadku usuwania kontroli dostępu. Być może coś z efektem: sudo setfacl -Rx g: ścieżka gid
dlaczego zmiana miejsca między flagami -Ri -mprzerywa polecenie?
pkaramol
@pkaramol: Ponieważ -mopcja przyjmuje argument ( u:foo:rwX,d:u:foo:rwXw tym przypadku specyfikację ACL ), a zmiana kolejności opcji oddziela opcję od jej argumentu. Może być również tak, że setfaclnajpierw jest zakodowany, aby oczekiwać jego głównych opcji.
Wstrzymano do odwołania.