我的文件系统上有一个名为“/etc/file.conf”的文件。
$ getfacl /etc/file.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/file.conf
# owner: root
# group: root
user::rw-
group::r--
other::r--
我希望我的帐户“userr”具有写入权限,以便我的 Python 脚本可以写入它。它由 root 拥有,所以我的想法是创建一个新组并将其设置为它。
$ sudo groupadd rsnap
$ sudo usermod -a -G rsnap userr
$ id userr
uid=1000(userr) gid=1000(userr) groups=1000(user),27(sudo),1001(rsnap)
$ sudo setfacl -m g:rsnap:rw /etc/file.conf
$ getfacl /etc/file.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/file.conf
# owner: root
# group: root
user::rw-
group::r--
group:rsnap:rw-
mask::rw-
other::r--
然而..
$ echo "Test" >> /etc/file.conf
-bash: /etc/file.conf: Permission denied
我错过了什么?
答案1
您修改了/etc/rsnapshot.conf
但您使用 进行了测试/etc/file.conf
。
您仍然需要通过以下方式启用掩码:
setfacl -m m:rw- filename
或者
setfacl -m m::rw- filename
取决于操作系统 - 请注意,这种 ACL 从未标准化。 1993 年的相关标准提案于 1997 年被撤回。
顺便说一句:我只是注意到你的面具可能已经设置好了。所以你仍然使用了错误的文件名。
这个过时的 ACL 提案中的问题会经常出现,因为标准提案从未完成,并且一致认为这不是客户喜欢的。