我已经设置了一个可以通过 Apache/DAV 访问的 Subversion 服务器,几天前搞砸了存储库文件权限后,我开始怀疑是否有比我现在的做法更好的方法。
存储库归专门的用户和组所有,而 apache 以常规www:www
用户身份运行,因此它对存储库没有写入权限。到目前为止,我的解决方案是将用户添加www
到svn
组并确保存储库内的文件是组可写的……但六个月后,我将创建一个新的存储库,忘记修复文件权限,并且只要有人尝试提交某些内容,我就会收到一些电子邮件。
还有其他方法可以做到这一点吗?也许首先强制 svnadmin 创建可组写的存储库?(如果您想知道服务器是否是 FreeBSD 6.2)
答案1
当您使用 Apache 访问存储库时,Apache 运行的用户必须具有写入权限。因此,最简单的解决方案是将存储库提供给该用户。
在我的 Debian 机器上,Apache 的运行情况如下www-data
:
%ls-ald / home / Subversion存储库 drwxr-xr-x 7 www-data www-data 4096 11月14日 10:02 /home/Subversion-Repository
这只有在你希望通过 Apache/DAV 和其他方式访问同一个存储库时才会出现问题。但这种做法灰心。 我引用:
幸运的是,大多数存储库管理员永远不需要如此复杂的配置。希望访问位于同一台计算机上的存储库的用户不限于使用 file:// 访问 URL — 他们通常可以使用 http:// 或 svn:// URL 中的 localhost 作为服务器名称来联系 Apache HTTP 服务器或 svnserve。并且,为 Subversion 存储库维护多个服务器进程可能会比必要的更令人头疼。我们建议您选择最能满足您需求的单个服务器并坚持使用它!
答案2
长期解决方案是使用 ACLS 允许 www 用户对目录树以及在树中创建的所有未来目录进行写访问。
尝试这个 URL 来开始。
http://www.onlamp.com/pub/a/bsd/2005/09/22/FreeBSD_Basics.html
-布莱恩