如何正确设置www-data文件的acl?

如何正确设置www-data文件的acl?

我的服务器上存储了 Web 文件。目前只有 root 拥有完全访问权限:

drwxr-xr-x  6 root www-data  directory
-rw-r--r--  1 root www-data  file.php

问题是开发人员想要使用自己的帐户su - myuser来访问和修改这些文件。

不幸的是,我发现的唯一解决方案是将这些用户添加到www-data组中并使 php 文件可写入,但这www-data很难看。

我还有什么选择?

答案1

我相信你需要使用X并不是X对于可执行文件。

步骤 1:创建备份

首先进行备份,以防有一天出现问题:

mkdir ~/storage-changes
sudo getfacl -R /var/www > ~/storage-changes/default_www_facl

(以防万一)恢复

sudo setfacl --restore=~/storage-changes/default_www_facl 

应用 ACL

接下来,申请加入群组:

# -R is recursive
# -m is modify
# -d applies to default ACL

sudo chgrp -R www-data /var/www
sudo setfacl -Rd g:www-data:rwX /var/www
sudo setfacl -Rdm g:www-data:rwX /var/www

ls -lta /var
sudo getfacl /var/www

+文件/目录列表末尾的 仅表示它具有额外的 ACL 。

答案2

如果您的 Linux 服务器不是太旧,并且您使用的是 Linux 标准文件系统,则可以使用访问控制列表向其他用户授予权限。

myuser例如,以下命令将授予用户读写权限filesetfacl -m user:myuser:rw file

setfacl可能需要安装,具体取决于您的发行版。

相关内容