Позволяя пользователям изменять свои пароли SVN
Вопрос
Я настроил сервер SVN, и я хочу позволить пользователям иметь возможность изменять свои собственные пароли, но я не уверен, как это сделать. Имена пользователей и пароли хранятся в файле пользователей, который я создал с помощью HTPASSWD. В идеале пользователь сможет войти на сервер и запустить команду htpasswd/svn/repos/users [username], чтобы изменить свой пароль. (Очень, очень очевидная) проблема с этим подходом заключается в том, что если я сделаю этот файл читаемым и доступным для записи для всех, они смогут изменить чей -либо пароль или даже удалить пользователей SVN. Какие альтернативы? Я не опыт работы с системным администрированием Unix Shell, так что извините, если это полный вопрос NOOB.
Решение
Я так понимаю, вы используете Apache. Верно?
Вы думали об использовании LDAP для администрирования счета? Apache довольно хорошо интегрируется с LDAP, и доступ к учетной записи Windows также может быть вызван LDAP. Это означает, что вы можете войти в подрывную деятельность, используя свою учетную запись Windows и пароль, и вы можете использовать группы Windows, чтобы помочь контролировать доступ. Вот моя установка:
LoadModule dav_svn_module modules/mod_dav_svn.so
<Location /source>
DAV svn
SVNPath /opt/svn_repos
AuthType basic
AuthName "Subversion Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycompany.com:3268/dc=mycompany,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svnUser,OU=Users,OU=Accounts,DC=mycompany,DC=com"
AuthLDAPBindPassword "Swordfish"
Require ldap-group CN=Developer,CN=Groups,DC=mycompany,DC=com
</Location>
Однажды я написал небольшую программу PHP, чтобы позволить пользователям изменить свой пароль подрывной деятельности. У меня его сейчас нет, но это не так сложно. Вы знаете пользователя и местоположение файла HTPASSWD. Все, что вам нужно сделать, это иметь тип пользователя в новом пароле, зашифровать его и переписать файл htpasswd. Я использовал символическую ссылку, чтобы сделать файл HTPASSWD видимым для моей программы PHP.
Тем не менее, я обнаружил, что изменение htpasswd может не повлиять до после перезапуска Apache, и вы не можете просто перезапустить Apache, когда люди выполняют проверку подрывной деятельности.