更新 #3:我想我找到了。
/etc/httpd/conf.d/subversion.conf
<Location /repos>
DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
Run Code Online (Sandbox Code Playgroud)
svn-auth-conf 的格式为
user1:$apr1$randome letters ... $random letters and numbers
Run Code Online (Sandbox Code Playgroud)
我觉得我使用了一些命令行工具来添加用户,但我不记得是什么。
更新 #2: locate http.conf 给出这些结果
/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf
Run Code Online (Sandbox Code Playgroud)
我在其中任何一个中都没有看到与颠覆有关的任何内容。如果有帮助,我可以在这里发布文件。
原问题:
几年前,我安装并设置了 subversion。我不记得我是如何添加用户的。我现在需要添加另一个,但是当我检查passwd文件时,没有定义用户,文件中也没有设置任何内容svnserve.conf——两者都注释掉了所有内容。这是我可以找到通过谷歌添加用户的唯一方法。所以我试了一下:
user1 = password1
user2 = password2
Run Code Online (Sandbox Code Playgroud)
anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos
Run Code Online (Sandbox Code Playgroud)
但我仍然只能使用 访问它user1,即使我user1不是 linux 服务器上的用户。还有其他方法可以添加用户还是我的配置有问题?
更新:
我已将以下行添加到我的 svnserve.conf 文件中
authz-db = authz
Run Code Online (Sandbox Code Playgroud)
然后我的 authz 文件看起来像这样
authz [组] devs = user1,user2
[repos:/]
devs = rw
Run Code Online (Sandbox Code Playgroud)
仍然不起作用。在 passwd 中 user1 的密码与我用来登录的密码不同。所以我认为 subversion 根本没有使用它进行身份验证。特别是因为之前文件是空的,我仍然能够登录。有什么方法可以确保它使用 svnserve、passwd、authz 文件进行身份验证?某处有另一个配置文件吗?
Subversion 身份验证通常有两个部分。第一个是某种密码存储库。第二个是访问控制列表。密码列表用于验证用户并检查他们的密码,但您还必须设置哪些用户可以访问哪些资源。
有多种密码存储库类型。我不熟悉passwd类型,我使用htpasswd类型,它使用与 apache 用于用户身份验证相同的用户/密码文件。我将用户添加到这个文件中htpasswd .htpasswd username。看起来您可能已针对您的密码类型正确执行了此步骤。
第二部分是ACL。Subversion 应该有一个名为access某处的文件,其中包含每个存储库的部分。您需要在要访问的存储库下添加一行,username = rw以授予该用户对该存储库的读/写访问权限。
小智 6
SVN服务器配置(主要)由三个文件组成:
所以你只需要给我们提供两个配置文件,请检查 authz 文件是否包含:
#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw
Run Code Online (Sandbox Code Playgroud)
对于您要授予访问权限的项目测试
| 归档时间: |
|
| 查看次数: |
152794 次 |
| 最近记录: |