setfacl
má rekurzivní možnost (-R
) stejně jako chmod
:
-R, --recursive Apply operations to all files and directories recursively. This option cannot be mixed with `--restore'.
umožňuje také použití velkého-x X
povolení, což znamená:
execute only if the file is a directory or already has execute permission for some user (X)
takže by mělo fungovat následující:
setfacl -R -m u:colleague:rwX .
(všechny citace jsou z man setfacl
pro acl-2.2.52 jak je dodáváno s Debianem)
Jak zmínil umläute, příkaz setfacl -R
s velkým "X" je způsob, jak jít, například:
setfacl -R -m u:colleague:rwX .
Nicméně pro ty, kteří potřebují znovu použít ACL regresivně (tj. jako "znovu použít oprávnění pro podadresáře" à la Windows).
find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
Tento příkaz lze rozdělit, aby se předešlo chybám jako setfacl: foobar: Only directories can have default ACLs
.
find . -mindepth 1 -type d| xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
find . -mindepth 1 -type f| xargs -n 50 setfacl -b --set-file=<(getfacl . | grep -v '^default:' | sed -e 's/x$/X/')
Všimněte si, že syntaxe <( something )
je Náhrada procesu , který je specifický pro bash. Pokud používáte jiný shell, možná budete muset vytvořit dočasný soubor.
Otevřete manuálovou stránku a vyhledejte řetězec v jediném příkazu
NFS:Nelze odpojit sdílenou složku NFS, když je server offline