我正在尝试向现有存储库添加只读 HTTP 访问权限,svn
同时仍允许通过svn+ssh
.
我已经安装了 Apache、mod_dav_svn 等并将 Apache 指向svn
存储库,但是当我尝试通过 HTTP 访问存储库时,出现以下错误:
Could not open the requested SVN filesystem
当我查看 Apache 的 error_log 时,我发现它无法打开format
我的存储库中的文件。该文件所有人都可以读取,但没有人可以写入,而且它似乎可以svn+ssh
访问。如何在不影响svn+ssh
开发人员访问的情况下解决 Apache 的问题?
谢谢。
更新:看来这不仅限于现有的回购。我刚刚创建了一个全新的测试仓库,chown -R apache:apache
在上面运行,我仍然遇到同样的问题。我已经验证apache
用户确实对每个目录都具有执行权限,format
并在format
. 但是,如果我在 Apache 用作文档根目录的目录树中的某处创建测试存储库,则一切正常。chroot
CentOS 5.3 上是否有 Apache ed(或类似版本)?如果是这样,我可以绕过它吗?再次感谢。
我认为您可以通过创建一个svn组并将所有用户以及 apache(或 www-run,或运行 apache 的任何用户)用户放入该组来完成此操作。然后您可以更改存储库的权限,使其归svn组所有。
话虽如此,我认为首选路线是将所有内容都转移到 WebDAV。这里的原因是为了使 svn+ssh 工作,用户需要对存储库有直接的写访问权,以及对服务器的 SSH 访问权。这为存储库提供了很大的潜在损害,以及其他潜在的安全风险。
使用 WebDAV,用户只能通过 WebDAV 服务器执行操作。这种方法有很多优点,包括但不限于细粒度的访问控制、更多的身份验证选项、审计等。
听起来像一个 SELinux 问题......你在 /var/log/audit/audit.log 中有否认吗?