权限控制
权限采用了Apache的SVN模块来控制,配置方式与上面的官方文档存在不一致。
问题
- 用户组和repository权限配置与文档一致。
- 用户密码的配置完全不一样。
通过分析/etc/apache2/mods-enabled/dav_svn.conf
<Location /svn/>
DAV svn
SVNParentPath /var/local/svn/
SVNListParentPath on
AuthzSVNAccessFile /etc/apache2/dav_svn/dav_svn.authz
Satisfy any
Require valid-user
AuthType Digest
AuthName "Subversion"
AuthUserFile /etc/apache2/dav_svn/dav_svn.passwd
</Location>
我们了解到认证使用的是Digest
类型,而上面文档提到的htpasswd 生成的密码只适用于Basic
类型,我们需要用htdigest来生成密码。还有这个镜像中也没有安装htpasswd。
解决方案
安装apache2-utils
htdigest和htpasswd都包含在apache2-utils中
apt-get install apache2-utils
添加密码
htdigest ./dav_svn.passwd "Subversion" user
输密码输两次就好了。
htdigest 命令和htpasswd用法基本一致
htdigest [ -c ] passwdfile realm username
realm
就对应上面的AuthName