如何在SVN中添加用户?


12

更新#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文件中设置任何内容-两者都注释掉了所有内容。这是我可以找到通过Google添加用户的唯一方法。所以我尝试了:

密码

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

仍然不起作用。user1的密码与我用于登录的密码不同。因此,我认为Subversion根本没有使用它进行身份验证。特别是因为文件之前是空的,我仍然可以登录。有什么方法可以确保它使用svnserve,passwd,authz文件进行身份验证?哪里有另一个配置文件?

Answers:


8

Subversion身份验证通常包含两个部分。第一个是某种密码存储库。第二个是访问控制列表。密码列表用于验证用户并检查其密码,但是您还必须设置哪些用户可以访问哪些资源。

有几种密码存储库类型。我对passwd类型不熟悉,我使用htpasswd类型,该类型使用与apache进行用户身份验证相同的用户/密码文件。我使用将用户添加到该文件htpasswd .htpasswd username。看来您可能已正确输入密码类型完成了此步骤。

第二部分是ACL。Subversion应该access在每个存储库中都有一个文件,该文件的某处带有部分。您将需要在要访问的存储库下添加一行,username = rw以授予该用户对该存储库的读/写访问权限。


我回到家后会尝试一下。听起来很熟悉。
斯科特

我不认为是这样。我的服务器上没有.htpasswd文件。
斯科特,

6

SVN服务器配置(主要)由三个文件组成:

  • 认证
  • 密码
  • svnserve.conf这是主文件(authz-db = authz)

因此,您只需向我们提供两个配置文件,请检查authz文件是否包含:

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

对于项目测试,您希望授予访问权限


我尝试过这没有用。我以user1身份登录时使用的密码与我在passwd文件中使用的密码不同。所以我根本不使用它。
斯科特,

请检查您是否使用了正确的配置文件:什么是输出ps aux|grep svn
谢尔盖

还有一个问题。如何获得您的repos目录结构(svn://或整个http服务器)?
谢尔盖(Sergey)

root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
斯科特,

通过http服务器
斯科特

4
## 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文件。


2
htpasswd -m /etc/subversion/svn-auth-file yourusername

然后它将要求输入密码并确认密码。


1

您可以使用命令,

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX是用户名,那么它将要求输入密码

仅当您使用apache设置svn时,它不会读取svn conf文件夹用户名密码conf文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.