我正在设置SVN服务器并希望限制访问权限,因此所有用户必须先登录才能查看/修改文件。我的dav_svn.conf看起来像这样:
<Location /svn>
DAV svn
SVNParentPath /home/pi/repos
# Authentication: Digest
AuthName "Subversion repository"
AuthType Digest
AuthUserFile /etc/apache2/svn-auth.htdigest
# Authorization: Authenticated users only
Require valid-user
</Location>
当我尝试访问该网页时,显示“内部服务器错误”。查看“/var/log/apache2/error.log”里面显示以下行:
[Mon Sep 11 20:36:47.755229 2017] [authn_core:error] [pid 30331:tid 1972368432] [client 192.168.0.103:59263] AH01796:AuthType Digest 配置没有相应的模块,引用: http://192.168.0.100/svn/A/
我可以通过在“需要有效用户”周围添加额外的XML标记来更改dav_svn.conf来“修复”错误:
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
然而,有了这个,我显然对所有人和他们的母亲开放观看权。我也可以通过尝试访问网页来验证这一点,而且我确实在没有密码的情况下进入。尝试POST时,我再次遇到同样的错误。
我试图在线搜索错误很多,但除了无数的例子之外,没有人似乎对它有任何问题......非常感谢帮助。
答案 0 :(得分:1)
好的,事实证明默认情况下未启用身份验证功能的这一特定部分。我在网上找到的例子没有提到。我做了以下事情:
sudo a2enmod auth_digest
给出了这个输出:
Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Enabling module auth_digest.
To activate the new configuration, you need to run:
service apache2 restart
因此authn_core已经启用,但不是摘要。这很奇怪,因为已经可以创建摘要密码文件:
sudo htdigest -c /etc/apache2/svn-auth.htdigest realm“Subversion repository”