setfacl
再帰がある オプション (-R
) chmod
のように :
-R, --recursive Apply operations to all files and directories recursively. This option cannot be mixed with `--restore'.
また、capital-x X
を使用することもできます 許可、つまり:
execute only if the file is a directory or already has execute permission for some user (X)
そのため、次のようにするとうまくいくはずです:
setfacl -R -m u:colleague:rwX .
(すべての引用は man setfacl
からのものです acl-2.2.52 の場合 Debian に同梱されている)
ウムロイテで述べたように、コマンド setfacl -R
大文字の「X」を使用する方法は次のとおりです。
setfacl -R -m u:colleague:rwX .
ただし、ACL を再帰的に再適用する必要がある場合 (つまり、Windows の「サブディレクトリにパーミッションを再適用する」のようなものです)。
find . -mindepth 1 | xargs -n 50 setfacl -b --set-file=<(getfacl . | sed -e 's/x$/X/')
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/')
構文 <( something )
に注意してください プロセス代替です 、これは bash に固有です。別のシェルを使用する場合は、一時ファイルを作成する必要がある場合があります。