我会尽力解释我是如何尝试建立这个系统的。
想象一个运行 WHM 的生产服务器和不同的站点。我们将这些站点称为... site1、site2、site2
现在,通过 WHM 设置,每个站点都为它们定义了一个用户/组,为了简单起见,我们将这些用户/组称为 site1、site2。
现在,更新这些站点是使用 SVN 完成的,并通过使用提交后脚本来自动更新这些站点(通过 apache 配置阻止 .svn)。
这些网站有两个固定维护者,我们称他们为 Joe 和 Bob。Joe 和 Bob 都可以通过各自的受限帐户对服务器进行命令行访问。
所以我做了简单的一点,设法让 SVN 与这些“维护者”一起工作,这样当 SVN 提交发生时,更改就会被签出并完美运行。
这是警告,最终是我的问题。用户权限。
通过我对这个设置的测试,我只能通过授予正在更新的 777 权限来使其正常工作,这样 Joe 和 Bob 就可以对每个站点的 webfront 目录进行读写访问。
所以,现在是如何设置的一个例子:
Joe 和 Bob 都属于一个名为“Dev”的组。我为该组设置了主 /svn 文件夹以进行读写访问,并且效果很好。提交后触发,更新站点,然后在 webfront 中的每个文件上设置 777。
然后我将其更改为尝试并考虑组权限更新,而不是直接的 777。
/home/site1/public_html 中的每个文件夹最初的 chmod 为 664,每个文件夹为 775
看起来有点像这样
drwxrwxr-x .
drwxrwxr-x ..
drwxrwxr-x site1 site1 my_test_folder
-rw-rw-r-- site1 site1 my_test_file
所以 site1 是这些文件和文件夹的所有者和组所有者。因此,我随后将 site1 添加到 Joe 和 Bobs 辅助组,以便 SVN 更新将正确允许访问这些文件。
现在的问题就在这里。
当我希望将文件或文件夹添加到 /home/site1 时,比如说 Bobs_file,它看起来像这样
drwxrwxr-x .
drwxrwxr-x ..
drwxr-xr-x Bob dev bobs_folder
drwxrwxr-x site1 site1 my_test_folder
-rw-rw-r-- Bob dev bobs_file
-rw-rw-r-- site1 site1 my_test_file
我怎样才能得到它,以便使用 Bob 可用的一组用户权限来更改该文件的所有者和组所有者以反映“site1”“site1”。由于 Bob 属于 Dev 我可以使用 CHMOd 正确设置权限,但似乎 CHGRP 正在抛出操作错误。
现在,这已经足够冗长了,可以准确地概述我要完成的工作,以防万一我要解决这个问题,并且有一个更简单的解决方案。这是我的目标
- 2人更新
- 给定 WHM 的结构,指定多个用户帐户
- 试图将文件和文件夹的主用户/组权限维护到原始用户帐户,而不是更新的帐户。
- 我喜欢 SVN+SSH 的安全性,而不是 SVN。
- 不想通过 root 运行所有这些。
我希望这是有道理的,并提前感谢:)