setfacl は指定されたユーザーに権限を付与しません。

setfacl は指定されたユーザーに権限を付与しません。

奇妙な問題があります。一部の開発者がフォルダ内の複数のファイルに対する書き込み権限を持つことができるように、aclに集中しようとしています。

ここにサンプルフォルダ構造があります。そこにsettings.local.phpファイルがあります。 chmodを使用して000権限を付与し、setfaclを使用してrwX権限を付与して動作しました。 getfaclで正しい権限を与えたかのように動作しました。ただし、所有者権限は影響を受けず、ユーザーは実際にファイルを保存できません。実際、この例ではユーザーがファイルを読み取ることはできません。

hostname:/srv/clientname/sites/local# chmod 000 *

hostname:/srv/clientname/sites/local# ls -la
total 64
dr-xrwxrwx+  3 clientname www-data  4096 Jun 19 16:50 .
drwxrwxrwx+  5 clientname www-data  4096 Jun 19 16:51 ..
----------+  1 clientname www-data   775 Jun 19 16:50 settings.local.php

hostname:/srv/clientname/sites/local# groups clientname
clientname : www-data sftp ftp

hostname:/srv/clientname/sites/local# setfacl -m u:clientname:rwX *

hostname:/srv/clientname/sites/local# ls -la
dr-xrwxrwx+  3 clientname www-data  4096 Jun 19 16:50 .
drwxrwxrwx+  5 clientname www-data  4096 Jun 19 16:51 ..
----rw----+  1 clientname www-data   775 Jun 19 16:50 settings.local.php

hostname:/srv/clientname/sites/local# getfacl settings.local.php
# file: settings.local.php
# owner: clientname
# group: www-data
user::---
user:www-data:rw-
user:clientname:rw-
group::r--
group:www-data:rw-
mask::rw-
other::---

私は何が間違っていましたか?

ベストアンサー1

ACL は一般権限を補完しますが、置き換えることはありません。clientnameファイルの所有者として、まず、所有者ACLを適用します。。それは

user::---

(所有者権限と一致)アクセスが拒否されました。

おすすめ記事