在 OS X 服务器上强制文件和子目录权限

在 OS X 服务器上强制文件和子目录权限

我们有一个 OS X 开发服务器,供五名开发人员使用,主要创建基于 Symfony2 的网站。在这五人中,只有我们两人属于 sudo 组,这意味着如果其他人遇到权限问题,他们无法仅通过 sudo 来解决。

我把我们所有人developers(包括 Apache 用户)都放在一个组中,并将所有网站的根目录的组设置为developers。我还添加了setgid标志,因此在其中创建的任何子目录和文件都将继承该组。这很完美。

唯一的问题是 Symfony2 创建的任何文件或子目录(即缓存和日志文件)都没有与该组一起创建可写权限。我遇到过这个chmod +a选项,并尝试设置一个 ACL 条目,如下所示:

sudo chmod -R +a "developers allow write" path/

这会在显示的权限列表末尾添加一个“+” ls。遗憾的是,仍然无法使用组写入创建新文件。有人能告诉我我做错了什么吗?

答案1

这些新文件将不会具有该group write设置,因为您所做的更改仅影响文件的 ACL。ACL 和 POSIX-Rights 是两个独立的东西!

在我看来你有两个选择:

  • 更改 Web 服务器的 umask 或
  • 将 ACL 设置为父文件夹,以便向下继承。由于首先检查 ACL,因此服务器应使用此处设置的任何读取或写入权限。

在我看来,第二种选择是更好的选择,因为在创建文件或文件夹的 PHP 应用程序中设置什么 umask 并不重要,因为它是在系统级别设置的。

相关内容