setfacl
memiliki rekursif opsi (-R
) seperti chmod
:
-R, --recursive Apply operations to all files and directories recursively. This option cannot be mixed with `--restore'.
itu juga memungkinkan penggunaan kapital-x X
izin, yang artinya:
execute only if the file is a directory or already has execute permission for some user (X)
jadi melakukan hal berikut seharusnya berhasil:
setfacl -R -m u:colleague:rwX .
(semua kutipan berasal dari man setfacl
untuk acl-2.2.52 seperti yang dikirimkan dengan Debian)
Seperti yang disebutkan oleh umläute, perintah setfacl -R
dengan huruf besar "X" adalah caranya, seperti:
setfacl -R -m u:colleague:rwX .
Namun, bagi mereka yang perlu menerapkan ulang ACL secara berulang (yaitu seperti "menerapkan kembali izin pada sub-direktori" à la Windows).
find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
Perintah tersebut dapat dipisah untuk menghindari error seperti 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/')
Perhatikan bahwa sintaks <( something )
adalah Pergantian Proses , yang khusus untuk bash. Anda mungkin perlu membuat file sementara jika menggunakan shell lain.