我在权限方面遇到了一些问题,我网站的程序员希望我将 admin 用户添加到 apache 组,然后设置一些权限。由于我对Linux的了解比较有限,所以在网上找到了以下内容:
chown -R apache:apache /path/to/webserver/www
chmod -R g+rw /path/to/webserver/www
这工作得很完美,几天后一切都很好(顺便说一句,我使用“apache”而不是 www-data,因为我在 CentOS 上)。现在,他们说他们无法将文件上传到该文件夹,因为它由 apache 用户拥有,而他们希望它由 apache 和管理员用户拥有。
除了“apache”之外,如何将“admin”添加到所有权中?
谢谢
答案1
从传统意义上来说,只有一个用户可以拥有一个文件。但在现代 UNIX 系统上,可以使用另一种措施 - 访问控制列表或 ACL:s。
ACL:s 基本上是除了传统的用户/组/其他权限之外的读、写和执行访问的附加控制。
要为 apache 组中的所有用户添加写入权限(无论文件权限如何),您可以设置目录的 ACL 以允许 apache 组的所有成员进行写入,并为该目录中创建的所有文件继承该权限。
sudo setfacl -d -m g:apache:rw /path/to/webserver/www
还要确保现有文件获得相同的权限:
sudo setfacl -m g:apache:rw /path/to/webserver/www/*
有关详细信息,请参阅man setfacl
和man getfacl
。