我已经设置了一个带有 Apache/WebDAV 接口的 Ubuntu Server for Subversion,以便与其他开发人员共享存储库。我的问题是,如何让 Subversion 使用 Linux 系统帐户进行身份验证?这将使 Subversion 帐户管理变得非常简单。带有 Apache/WebDAV 的 Subversion 当前正在使用此配置:
/etc/apache2/mods-available/dav_svn.conf 的内容:
<Location /svn>
DAV svn
SVNParentPath /home/svn
SVNListParentPath On
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
我尝试过改变AuthUserFile /etc/apache2/dav_svn.passwd
with AuthUserFile /etc/shadow
没有成功。这使得服务器响应错误 500 内部服务器错误。这是合乎逻辑的,为什么Web 服务应该有权访问系统身份验证文件?
预先非常感谢!
好的!我做到了!而且我认为很难找到答案!
我们必须告诉 Apache 使用“外部身份验证提供程序”,Apache 不会检查身份验证,而是将任务委托给外部身份验证器,在这种情况下,奇妙的是pwauth http://code.google.com/p/pwauth/.
所以我为使其发挥作用所做的步骤是:
-
为 Apache2 和 pwauth 安装 Mod_Auth_External 模块
sudo apt-get install libapache2-mod-authnz-external pwauth
为 Apache 启用新模块:sudo a2enmod authnz_external
在终端。
-
配置了我的apache.conf
(或者你可能有httpd.conf
)添加外部验证器(基于本文 http://code.google.com/p/pwauth/wiki/InstallApache#2._Server_Configuration):
AddExternalAuth pwauth /usr/local/libexec/pwauth
SetExternalAuthMethod pwauth pipe
-
编辑了我的/etc/apache2/mods-available/dav_svn.conf
设置新的外部身份验证提供程序:
...
AuthType Basic
AuthName "Subversion Repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
...
测试并运行良好!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)