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

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

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

然而,有时候,某些行为需要sudo才能完成。 例如,如果用户需要SSH进入服务器,以移动或复制文件(通过SSH而不是通过SMB更快),或者可能使文件的git提交等。您不能sudo作为Apache的这些行动,因为你不是技术上能够login为Apache。

因此,大多数开发人员将使用sudo进行git提交/推/拉操作,然后运行chown apache:apache . -R chown apache:apache . -R在整个虚拟主机目录中。

这似乎不是正确的方式去做这件事。 我试图找出最佳的行动方向。 所有用户也都在Apache组中,但是如果他们碰巧通过SSH创build新文件(也许git pull添加了新文件),那么这些文件现在由该用户拥有,而不是由apache拥有,再次导致他们再次分配一切。

这种设置有更好的工作stream程吗?

我过去设置的方法是让apache组中的所有开发人员(已经完成),然后将组写入vhost目录和vhost目录上的组sticky位(chmod g + ws )。 这应该强制所有文件创build组设置为Apache和读/写权限。 你将最终拥有拥有这些文件的个人账户,但只要组织已经写了它不应该。 而且这也要求0002的默认umask仍然存在。