使用 setfacl 授予其他用户访问权限而不授予组访问权限

使用 setfacl 授予其他用户访问权限而不授予组访问权限

我有一个用于备份的用户,我曾setfacl授予该用户访问文件的权限。但是,setfacl更改了组的基本 ACL 条目,并且某些应用程序要求组的基本 ACL 条目为0(不可读、不可写、不可执行)。有没有办法可以授予备份用户读取权限,而不会引起应用程序的反感?以下示例说明了setfacl基本 ACL 条目如何干扰:

user@host:/tmp$ umask 0077
user@host:/tmp$ touch a
user@host:/tmp$ ls -l a
-rw------- 1 user user 0 2012-02-01 16:28 a
user@host:/tmp$ setfacl -m u:nobody:rX a
user@host:/tmp$ ls -l a
-rw-r-----+ 1 user user 0 2012-02-01 16:28 a
user@host:/tmp$ chmod 600 a
user@host:/tmp$ getfacl a
user:nobody:r--                 #effective:---

编辑:我可以使用 root 作为我的备份用户,但我认为我不应该这样做。我正在使用 rsnapshot(使用 rsync(使用 ssh))备份到远程系统,我认为我必须允许 ssh 使用 PermitRootLogin 或将我的备份用户 uid 设为 0。此外,我希望备份能够自动化,我目前正在使用 ssh 密钥进行自动化。虽然我不介意备份系统是否具有对备份系统的读取权限,但我介意它是否具有写入权限。

答案1

否。如果存在 POSIX ACL,Unix“组”权限将映射到 ACLmask::条目,该条目设置所有 ACL 条目的最大允许权限,以免破坏与不支持 ACL 的工具的兼容性。(请参阅ServerFault 上的这个答案详细解释如下。

相关内容