我有一个用户bob
,他是该组的成员developers
。
我希望所有开发人员都能够对该目录/home/testing
和所有子目录进行读取、写入和执行。该目录/home/testing
由用户拥有testing
并属于组testing
。
为此,我执行了以下操作:
# Create the developers group and add bob to it
groupadd developers
useradd -G developers bob
# Clear out any existing ACLs recursively
setfacl -Rb
# Give the developers group read, write and execute permissions recursively (and by default) on the selected directory and all subdirectories.
setfacl -Rdm g:developers:rwx /home/testing
进行这些更改后,我注销并以用户身份重新登录bob
。但是,用户bob
仍然无法写入位于/home/testing
或其任何子目录中的文件。我收到权限被拒绝错误。
运行getfacl
起来/home/testing
看起来像这样:
# file: home/testing
# owner: testing
# group: testing
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:developers:rwx
default:mask::rwx
default:other::r-x
对我来说看起来是正确的。有人知道为什么我在/home/testing
与用户写入时仍然收到权限被拒绝的错误bob
吗?
答案1
我自己想出了这个。有点愚蠢的错误。我假设这setfacl -Rdm
会设置默认值和活动 ACL 权限。但它只设置默认值。
这个命令也是必要的:
setfacl -Rm g:developers:rwx /home/testing
getfacl
现在运行/home/testing
会返回以下内容:
# file: home/testing
# owner: testing
# group: testing
user::rwx
group::r-x
group:developers:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:developers:rwx
default:mask::rwx
default:other::r-x
并且在写入文件时不再出现权限被拒绝的错误。