更新#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>
svn-auth-conf 的格式为
user1:$apr1$randome letters ... $random letters and numbers
我感觉我使用了一些命令行工具来添加用户,但我不记得是什么了。
更新 #2:找到 http.conf 给出这些结果
/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf
我在其中没有看到任何与颠覆有关的内容。如果有帮助的话,我可以在这里发布文件。
原问题:
几年前,我安装并设置了 subversion。我不记得我是如何添加用户的。我现在需要添加另一个,但是当我检查该passwd
文件时,没有定义用户,svnserve.conf
文件中也没有设置任何内容——两者都注释掉了所有内容。这是我能找到通过谷歌添加用户的唯一方法。所以我尝试了一下:
密码
user1 = password1
user2 = password2
svnserve.conf
anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos
但我仍然只能使用 访问它user1
,即使user1
不是 linux 服务器上的用户。是否有其他方法来添加用户或者我的配置有问题?
更新:
我已将以下行添加到我的 svnserve.conf 文件中
authz-db = authz
然后我的 authz 文件看起来像这样
authz [组] devs = user1,user2
[repos:/]
devs = rw
还是不行。 passwd 中 user1 的密码与我用于登录的密码不同。所以我认为颠覆根本没有使用它来进行身份验证。特别是因为该文件之前是空的,但我仍然能够登录。有什么方法可以确保它使用 svnserve、passwd、authz 文件进行身份验证?某处还有另一个配置文件吗?
答案1
Subversion 身份验证通常有两个部分。第一个是某种密码存储库。第二个是访问控制列表。密码列表用于验证用户身份并检查其密码,但您还必须设置哪些用户有权访问哪些资源。
有多种密码存储库类型。我不太熟悉密码类型,我使用密码使用与 apache 用于用户身份验证相同的用户/密码文件的类型。我使用htpasswd .htpasswd username
.看起来您可能已经根据您的密码类型正确完成了此步骤。
第二部分是ACL。 Subversion 应该有一个名为某处的文件,access
其中包含每个存储库的部分。您需要在要访问的存储库下添加一行,以username = rw
授予该用户对该存储库的读/写访问权限。
答案2
SVN服务器配置(主要)由三个文件组成:
- 授权
- 密码
- svnserve.conf 这是主文件(authz-db = authz)
因此,您只需向我们提供两个配置文件,请检查 authz 文件是否包含:
#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw
对于该项目测试您想要授予访问权限
答案3
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser
New password:
Re-type new password:
Adding password for user testuser2
注意:使用与文件中使用的完全相同的文件名和路径名subversion.conf
。本例使用/etc/svn-auth-users
文件。
答案4
你可以使用命令,
sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
- XXXXX 是用户名,然后会要求输入密码
仅当您使用 apache 设置 svn 时才会出现这种情况,apache 不会读取 svn conf 文件夹用户名密码 conf 文件