Linux环境下SVN服务器用户创建及TortoiseSVN访问权限配置求助
Linux环境下SVN服务器用户创建及TortoiseSVN访问权限配置求助
嗨,我来帮你一步步搞定这个需求!你需要在Linux的SVN服务器上创建新用户,让他能用TortoiseSVN访问并上传数据,下面分两种最常见的SVN部署场景来操作,你对应自己的情况选就行:
一、如果你的SVN是通过Apache HTTP/HTTPS部署的(访问地址以http/https开头)
- 创建SVN用户:
Linux上这类SVN通常用htpasswd工具管理用户。如果是第一次创建用户文件,执行命令:
替换sudo htpasswd -c /path/to/your/svn/userfile.db new_username/path/to/your/svn/userfile.db为实际的用户文件路径(比如/etc/subversion/users.db或者仓库conf目录下的htpasswd文件),然后按照提示输入新用户的密码。如果已经存在用户文件了,去掉-c参数再执行,避免覆盖已有用户:sudo htpasswd /path/to/your/svn/userfile.db new_username - 配置仓库读写权限:
找到目标SVN仓库的conf目录,编辑authz文件,添加或修改权限规则,给新用户分配读写权限:
这里[your_repo_name:/] new_username = rwyour_repo_name是你的仓库名称,/表示仓库根目录,rw代表读写权限,如果只需要只读就写r。 - 重启Apache服务使配置生效:
根据你的Linux发行版执行对应命令:# Debian/Ubuntu系列 sudo systemctl restart apache2 # CentOS/RHEL系列 sudo systemctl restart httpd
二、如果你的SVN是通过svnserve部署的(访问地址以svn://开头)
- 创建SVN用户:
找到目标仓库的conf目录,编辑passwd文件,在[users]区块下添加新用户:
这里的密码可以是明文,如果想要加密密码,也可以用[users] new_username = user_passwordhtpasswd生成加密串后替换进去。 - 配置权限并开启权限验证:
- 编辑同目录下的
svnserve.conf,确保以下配置项被启用(去掉前面的#注释):anon-access = none # 禁止匿名访问 auth-access = write # 授权用户可写 password-db = passwd # 指定用户密码文件路径 authz-db = authz # 指定权限配置文件路径 - 编辑
authz文件,给新用户分配读写权限:[your_repo_name:/] new_username = rw
- 编辑同目录下的
- 重启svnserve服务:
如果是用systemd管理的服务,执行:
如果是手动启动的,先杀掉现有进程,再重新启动:sudo systemctl restart svnserve
替换sudo pkill svnserve svnserve -d -r /path/to/your/svn/repos_root/path/to/your/svn/repos_root为你的SVN仓库根目录路径。
三、TortoiseSVN端操作
打开TortoiseSVN,做下面几步就能上传数据了:
- 右键空白处选择Repo-browser,输入你的SVN仓库地址(比如
http://your-server-ip/svn/your_repo或者svn://your-server-ip/your_repo) - 在弹出的登录窗口输入刚创建的用户名和密码
- 之后你就可以通过右键菜单的Import上传本地数据,或者先Checkout仓库到本地,修改后再Commit到服务器
一些注意事项
- 确保Linux服务器的防火墙开放了对应端口:HTTP/HTTPS开放80/443,svnserve开放3690
- 权限文件的权限要正确:比如Apache部署的话,要让apache用户能读取用户文件,执行
sudo chown apache:apache /path/to/your/svn/userfile.db - 配置
authz时要注意语法,仓库名称和路径的对应关系不要写错
备注:内容来源于stack exchange,提问作者Suraj
相关产品推荐
相关产品推荐

