ACL でデフォルトのグループ権限を上書きすることはできません

ACL でデフォルトのグループ権限を上書きすることはできません

ディレクトリにこの ACL を設定しました:

root@<server_ip>:/srv/www# getfacl example.com/
# file: example.com/
# owner: web
# group: www-data
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:dev:rwx <--
default:mask::rwx
default:other::r-x

devグループにすべてのアクセス権を与えたい( rwX

touch次に、グループのユーザーとしてログインしているファイルを作成しますdev

luqo33@<server_ip>:/srv/www/example.com$ groups
dev 

権限が拒否されたというメッセージが表示されます:

luqo33@<server_ip>:/srv/www/example.com$ touch test
touch: cannot touch ‘test’: Permission denied

なぜこのようなことが起こるのでしょうか? ACL が効いていないようです。

答え1

うーん、これを再現するには

setfacl -m default:group:foogrp:rwx foodir

ただし、その場合、chdirディレクトリに入ることすらできません (ACL が適用される前にユーザーが chdir を実行したのでしょうか?)。 デフォルト グループを使用する必要がある理由はありますか? たとえば、次のような場合はどうなるでしょうか:

setfacl -k example.com
setfacl -m group:dev:rwx example.com

デフォルトのグループを削除し、devグループ アクセス用の ACL を追加します。

関連情報