我使用 ACL 来控制不同 Apache 实例和不同管理员组对各个 Web 根的访问。我有一个 Unix 组,admins-web22
用于特定网站的管理员和apache-web22
特定 apache 实例的用户。这些是在网络根目录上设置的权限:
# file: web22
# owner: root
# group: root
user::rwx
user:apache-web22:r-x
group::rwx
group:webmaster:rwx
group:admins-web22:rwx
mask::rwx
other::---
default:user::rwx
default:user:apache-web22:r-x
default:group::rwx
default:group:admins-web22:rwx
default:mask::rwx
default:other::r-x
有一个用户fred
是 的成员admins-web22
。该用户对该目录具有完全的读写访问权限(如上所述)。这工作正常。然而,该用户无法向用户授予apache-web22
某些文件和目录的写入权限,这一点很重要(例如,Web 管理员想要为 Drupal 设置上传目录)。该setfacl
命令给出“不允许操作”。
我的问题是,谁可以使用 授予权限setfacl
,以及如何让组中的用户自行admins-web22
更改( )权限apache-web22
?
我正在运行 Debian Wheezy,如果它很重要的话,它是一个 ext4 分区。
答案1
手册setfacl
页解释了谁可以授予权限:
文件所有者和有能力的进程
CAP_FOWNER
被授予修改文件 ACL 的权限。这类似于访问文件模式所需的权限。 (在当前的 Linux 系统上,root 是唯一具有此CAP_FOWNER
功能的用户。)
因此fred
只能用于setfacl
他拥有的文件。根据您的具体安全要求,您可以允许 的成员作为(使用)admins-web22
运行,这将允许他们更改...拥有的文件的 ACL 。setfacl
apache-web22
sudo
apache-web22