在CentOS系统中为Subversion(SVN)添加用户是一个常见的管理任务,通常涉及配置SVN的认证机制和用户权限,以下是详细的操作步骤和注意事项,帮助您顺利完成用户添加。

安装和配置SVN服务
确保您的CentOS系统已安装SVN服务,如果未安装,可通过yum命令快速安装:
sudo yum install subversion mod_dav_svn
安装完成后,创建SVN仓库目录并初始化一个仓库,
sudo mkdir -p /var/svn/repos sudo svnadmin create /var/svn/repos/myproject
配置SVN的认证文件,SVN支持多种认证方式,其中基于HTTP的Basic认证是最常用的,编辑/etc/httpd/conf.d/subversion.conf文件,添加以下内容:
<Location /svn>
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn/passwd
Require valid-user
</Location>
这里,AuthUserFile指定了用户密码文件的存储路径,您可以根据需要修改。
创建和管理用户
使用htpasswd命令创建用户并设置密码,首次创建用户时需添加-c参数以创建新文件,后续添加用户则无需该参数。
sudo htpasswd -cm /etc/svn/passwd username1
系统会提示您输入并确认密码,若要添加第二个用户,去掉-c参数:

sudo htpasswd -m /etc/svn/passwd username2
这样,用户username1和username2即被添加到SVN认证系统中,您可以通过查看/etc/svn/passwd文件验证用户是否创建成功,文件内容类似:
username1:encrypted_password1
username2:encrypted_password2
配置用户权限
SVN的权限控制通过authz文件实现,编辑/etc/svn/authz文件,定义用户或用户组的访问权限。
[groups] developers = username1, username2 [/] @developers = rw * = r
上述配置中,developers组包含username1和username2,他们对根目录具有读写权限(rw),其他用户仅有读权限(r),若要限制特定用户访问某个项目,可添加项目路径规则:
[myproject:/] username1 = rw username2 = r
重启服务并测试
完成配置后,重启Apache服务使更改生效:
sudo systemctl restart httpd
您可以通过浏览器或SVN客户端访问SVN仓库,输入用户名和密码进行测试,使用svn co命令:
svn co http://yourserver/svn/myproject --username username1
若配置正确,系统会提示输入密码,并成功检出仓库。

注意事项
- 文件权限:确保
/etc/svn/passwd和/etc/svn/authz文件对Apache用户(通常是apache)可读,可执行:sudo chown apache:apache /etc/svn/passwd /etc/svn/authz sudo chmod 640 /etc/svn/passwd /etc/svn/authz
- 安全性:Basic认证以明文传输密码,建议结合HTTPS加密传输,避免密码泄露。
FAQs
Q1: 如何修改SVN用户的密码?
A1: 使用htpasswd命令并指定用户名,系统会提示输入新密码。
sudo htpasswd -m /etc/svn/passwd username1
无需-c参数,否则会覆盖原有文件。
Q2: SVN用户权限修改后是否需要重启服务?
A2: 不需要重启Apache服务。authz文件是实时生效的,修改后立即生效,但passwd文件修改后需重启Apache才能使新密码生效。