svn - 如何让 Subversion 使用 Linux 系统帐户进行​​身份验证?

标签 svn apache2 webdav

我已经设置了一个带有 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.passwdAuthUserFile /etc/shadow没有成功。这使得服务器响应错误 500 internal server error。顺理成章,为什么 Web 服务应该有权访问系统身份验证文件?

提前非常感谢!

最佳答案

行!我做到了!而且我认为很难找到答案!

我们必须告诉 Apache 使用“外部身份验证提供程序”,Apache 不会检查身份验证,但会将任务委托(delegate)给外部身份验证器,在这种情况下,奇妙的 pwauth .

因此,我为使其工作而采取的步骤是:

  • 为 Apache2 和 pwauth 安装 Mod_Auth_External 模块
    sudo apt-get install libapache2-mod-authnz-external pwauth
    
  • 为 Apache 启用新模块: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/

    相关文章:

    svn - 如何检测文件以换行符结尾?

    svn - Subversion 大型存储库导入/结帐

    ios - 无法将文件夹从 xcode 提交到 svn

    apache - SVN Repo 给出 404 not Found

    linux - 在 windows 10 上挂载 webdav SSL

    java - Subversion 或 Mercurial SPI - 服务器应实现什么 API?

    svn - 使用 TortoiseSVN 如何将更改从主干合并到分支,反之亦然?

    Apache2 通过添加 header 修改从 CIFS 安装存储库下载的文件。文件已损坏

    python - debian/apache2 下的 mod-wsgi 段错误

    amazon-web-services - 需要密码时如何在 AWS Ubuntu 中运行 systemctl restart apache2