我已经设置了一个带有 Apache/WebDAV 接口(interface)的 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
与 AuthUserFile /etc/shadow
没有成功。这使得服务器响应错误 500 internal server error。顺理成章,为什么 Web 服务应该有权访问系统身份验证文件?提前非常感谢!
最佳答案
行!我做到了!而且我认为很难找到答案!
我们必须告诉 Apache 使用“外部身份验证提供程序”,Apache 不会检查身份验证,但会将任务委托(delegate)给外部身份验证器,在这种情况下,奇妙的 pwauth .
因此,我为使其工作而采取的步骤是:
sudo apt-get install libapache2-mod-authnz-external pwauth
sudo a2enmod authnz_external
在终端。 apache.conf
(或者您可能有 httpd.conf
)添加外部验证器(基于 this article ):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
...
关于svn - 如何让 Subversion 使用 Linux 系统帐户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522941/