Samba 共享上 Apache vhost 文件的文件夹权限

Samba 共享上 Apache vhost 文件的文件夹权限

在我们的网站开发环境中,我们有一个通过 Apache 运行多个 vhost 的中央 CentOS 服务器。vhost 文件通过 SMB 共享。办公室中的多个开发人员连接到此 SMB 共享(来自 OSX 客户端),以便创建和编辑用于网站开发的文件和文件夹。

此 SMB 共享配置为强制所有编辑或创建文件(通过 SMB)的所有者和组为apache。因此,所有 vhost 目录中的所有文件均归 ,apache:apache以确保 Apache 具有访问它们的适当权限。

但有时,某些操作需要 sudo 才能完成。例如,如果用户需要通过 SSH 进入服务器以移动或复制文件(通过 SSH 比通过 SMB 快得多),或者提交git文件等。您无法以 apache 身份使用 sudo 执行这些操作,因为从技术上讲您无法以 apache 身份登录。

因此,大多数开发人员将使用 sudo 进行 git 提交/推送/拉取,然后chown apache:apache . -R在整个 vhost 目录上运行。

这似乎不是解决问题的正确方法。我正在尝试找出最佳的前进方向。所有用户也都在 apache 组中,但如果他们碰巧通过 SSH 创建新文件(可能是添加git pull了新文件),那么这些文件现在归该用户所有,而不是 apache 所有,这又会导致他们chown再次陷入困境。

对于这种设置有没有更好的工作流程?

答案1

我过去设置的方法是让所有开发人员都加入 apache 组(您已经这样做了),然后在 vhost 目录上设置组写入权限,并在 vhost 目录上设置组粘性位( chmod g+ws )。这应该会强制所有文件在创建时将组设置为 apache 并设置读/写权限。您最终将得到拥有这些文件的个人帐户,但只要组有写入权限,就没关系。此外,这要求默认的 umask 0002 仍然有效。

相关内容