Acl

為什麼我對修改了 ACL 的文件沒有讀取權限?

  • December 10, 2013

/var/www/mysite/我的目標是只允許www-data 組中的使用者使用預設ACL讀取文件夾。

這適用於正常 ACL,但不適用於預設 ACL。為什麼?

我是這樣做的:

我以www-data組中的使用者www-data**身份登錄。我在目錄中*/var/www*。

我創建了一個目錄mysite並賦予它 0 權限。然後我添加了 ACL 權限,以便組www-data中的任何人都可以讀取目錄mysite/

$ 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-data可以訪問該文件夾。但是,如果我改為添加預設 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::---

預設 ACL 是應用於該目錄中新創建的文件的 ACL。它也被複製為在該目錄下創建的子目錄的預設 ACL,因此除非您執行某些操作來覆蓋它,否則它會遞歸應用。

預設 ACL 對目錄本身或更改預設 ACL 時存在的任何文件沒有影響。

因此,在您的情況下,您需要在目錄上設置 ACL(對於目錄本身)並設置預設 ACL(對於您將在目錄中創建的文件)。

引用自:https://unix.stackexchange.com/questions/89644