如何避免在SVN的配置文件中写密码?

如何避免在SVN的配置文件中写密码?

我正在配置服务器 SVN Collabnet(适用于 Solaris 10 的 v1.5.6.1)。我成功使用 ldap 服务器进行 SVN 身份验证。如何避免在以下配置文件(collabnet_subversion_httpd.conf)中写入非加密密码(此处为 XXXXX)?

ServerName mccuatsv10:8080
Listen 8080

User csvn

Group csvn

<Location /svn>
  DAV svn
  SetHandler svn
  SVNParentPath /appli/svn/repositories/
  AuthName "Subversion repository"
  AuthType Basic
  AuthBasicProvider ldap
  AuthzLDAPAuthoritative On
  AuthLDAPBindDN [email protected]
  AuthLDAPBindPassword XXXXX
  AuthLDAPURL ldap://eur.msd.world.ibm:389/OU=Users,OU=Accounts,OU=FR,DC=eur,DC=msd,DC=world,DC=socgen?sAM
AccountName?sub?(objectCategory=person)
  Require valid-user
</Location>

答案1

一个选项是将该AuthLDAPBindPassword行单独放入适当 chmodded 的文件中,然后使用Includeapcahe 配置中的文件来拉入该文件。即:

<Location /svn>
   ...
   AuthLDAPBindDN [email protected]
   Include my_ldap_password.conf
   ...
</Location>

这样可以保证密码的安全,同时使配置世界的其余部分保持可读。

答案2

一些 ldap 服务器允许匿名绑定。那么[据我所知] 您不需要提供绑定密码。

答案3

由于 Apache2 以 root 身份启动并在放弃 root 之前读取配置文件。

假设您当前的文件配置由 root 拥有且组是 root,如下所示:

-rw-r--r-- 1 root root 1.4K 2014-10-15 14:43 vhostconf

您只需将文件的读/写/执行权限授予“其他用户”即可:

sudo chmod o-rwx /etc/apache2/sites-available/vhostconf

你应该得到以下结果:

-rw-r----- 1 root root 1.4K 2014-10-15 14:43 vhostconf

这应该有足够的权限让 Apache2 读取它。

答案4

从 Apache 2.2.25 开始,AuthLDAPBindPassword 可以执行命令来查找密码。

最简单的选择是

AuthLDAPBindPassword "exec:/bin/cat /some/file/with/password"

详情http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapbindpassword

相关内容