ftp 用户和 www 数据

ftp 用户和 www 数据

我有一个应该完全可供 Apache(www-data 用户)访问的网站,并且我有一个 ftp 用户(在服务器上具有相同的用户名:user1),应该能够更新该网站。

我需要用户能够将文件添加到网站目录,但 www-data 应该对添加的文件具有完全访问权限。

user1 是 www-data 组的成员。

现在,当用户 1 将文件上传到服务器时,该文件具有权限:644,但我需要 664。

我该如何组织它。

非常感谢

答案1

解决此问题的最佳方法是避免使用标准 unix 权限作为强制执行。

以下四个命令应该可以解决这个问题:

setfacl -d -m apache:rwx -R /path/to/shared/folder
setfacl -d -m user1:rwx -R /path/to/shared/folder
setfacl -m apache:rwx -R /path/to/shared/folder
setfacl -m user1:rwx -R /path/to/shared/folder

这会使用 POSIX ACLS 改变文件的行为,以便您的 FTP 用户和 apache 都可以更改/删除/创建该目录内的文件,而不管原始作者是谁。

ACL 掩码由组的标准 unix 位定义。ACL 可以判断目录是目录,因为目录中不可避免地包含 +x。文件通常不会这样,即使您将 ACL 设置为 rwx,+x 部分也会因未设置组权限位而被屏蔽。

另一种方法是使用 suPHP、suExec 或其他“执行程序时更改用户”方法。但我个人觉得这些方法不如这个方便。

相关内容