/var/www/mysite/
私の目標は、デフォルト値を使用してwww-dataグループのユーザーにのみフォルダへの読み取りアクセスを許可することです。前方十字靭帯。
これは通常のACLでは機能しますが、デフォルトのACLでは機能しません。なぜ?
これが私がする方法です:
ユーザーとしてログインしましたwww-データグループに誰?www-データ。私はディレクトリにいます/var/www
。
ディレクトリを作成しました私のウェブサイトそして権限をゼロにしてください。その後、グループの全員が使用できるように ACL 権限を追加しました。www-データディレクトリへの読み取りアクセス権があります。私のウェブサイト/。
$ mkdir mysite
$ chmod 0 mysite
$ setfacl -m g:www-data:r-x mysite
$ ls -la
d---------+ 2 root root 4096 Sep 6 11:16 mysite
$ getfacl mysite/
# file: mysite/
# owner: root
# group: root
user::---
group::---
group:www-data:r-x
mask::r-x
other::---
このとき、ユーザーはwww-データフォルダにアクセスできます。ただし、デフォルトのACLを追加するとアクセスが拒否されます。
$ setfacl -m d:g:www-data:r-x mysite # <---- NOTE the default acl rule.
$ ls -la
d---------+ 2 root root 4096 Sep 6 11:16 mysite
$ getfacl mysite/
# file: mysite/
# owner: root
# group: root
user::---
group::---
other::---
default:user::---
default:group::---
default:group:www-data:r-x
default:mask::r-x
default:other::---
ベストアンサー1
デフォルトのACLは、このディレクトリに新しく作成されたファイルに適用されるACLです。また、そのディレクトリの下に作成されたサブディレクトリのプライマリACLにコピーされるため、それをオーバーライドするために何もしない限り、繰り返し適用されます。
デフォルトのACLは、ディレクトリ自体やデフォルトのACLが変更されたときに存在するすべてのファイルには影響しません。
したがって、あなたの場合は、ディレクトリにACLを設定し(ディレクトリ自体に対して)、デフォルトのACLを設定する必要があります(ディレクトリに作成するファイルについて)。