mod_dav_svn 用户对存储库的权限

mod_dav_svn 用户对存储库的权限

我刚刚用 apache mod_dav_svn 插件构建了 subversion 存储库,因此开发团队可以使用 httpd 的常用端口进行任何版本控制过程。它运行得非常顺利,他们从其他网络进行了检出/更新/提交过程,直到他们发现在通过 ssh-ly 访问服务器执行某些检出过程时出现问题,他们需要在服务器上更新一些工作副本以获取 httpd doc root 中的示例开发标签,只有 root 可以检出/更新服务器上的某些工作副本,每个已经由“AuthUserFile”配置允许的用户总是会收到被拒绝的消息。

我认为唯一可能与此相关的配置是

 AuthUserFile /etc/svn-auth-conf
 AuthzSVNAccessFile /etc/svn-acl-conf

我曾多次尝试更改与该内容相关的配置文件,但没有结果。

答案1

如果我理解正确,你通过以下方式执行 svn 时不会遇到任何问题http://somehost/svn/repo/proj但是当您尝试在系统中使用本地安装的 svn 客户端时,除 root 之外的任何用户的权限都会被拒绝。

您尝试提交/更新/签出的文件的权限是什么?它们是否归用户无权使用的功能用户帐户所有?

尝试从 /tmp 执行 checkout/update/commits 以查看是否是文件权限问题。

答案2

您是否检查过 Subversion 存储区的文件系统权限?

答案3

似乎有些用户通过 http 访问存储库,而一个用户/工作副本在本地访问存储库。您可能想要做的是将服务器上的工作副本切换为使用 http 方法而不是本地方法。您可能需要花一些时间修复权限,但如果每个人都以相同的方式访问存储库,那么您的麻烦就会少很多。

就像是:

svn switch --relocate file://path/to/repository http://127.0.0.1/path/to/repository /path/to/working/copy

应该可以解决问题,然后进行 svn 更新以确保一切正常。

答案4

您不应同时允许通过“ssh”和 http 进行访问。您的用户一次以服务器上的用户身份访问存储库,一次以 httpd 的权限访问存储库。

设置 https-support 以启用加密访问并拒绝 ssh 访问。

相关内容