Я настраиваю сервер SVN Collabnet (v1.5.6.1 для Solaris 10). Мне удалось использовать сервер ldap для аутентификации SVN. Как избежать записи незашифрованного пароля (XXXXX, здесь) в следующем файле конфигурации (collabnet_subversion_httpd.conf)?
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 christian.desbordes@ibm.com
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>
Один из вариантов - поставить AuthLDAPBindPassword
строку в соответствующем файле chmodded отдельно и используйте Include
в конфигурации apcahe, чтобы вытащить этот файл. т.е .:
<Location /svn>
...
AuthLDAPBindDN christian.desbordes@ibm.com
Include my_ldap_password.conf
...
</Location>
Это сохраняет пароль в безопасности, а остальную часть конфигурации остается читаемой.
некоторые серверы ldap допускают анонимную привязку. тогда [afaik] вам не нужно вводить пароль привязки.
Начиная с 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
Поскольку 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 мог его прочитать.