我正在配置服务器 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 的文件中,然后使用Include
apcahe 配置中的文件来拉入该文件。即:
<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