2011-12-01 4 views
3

Я установил SVN-сервер, и я хочу, чтобы пользователи могли изменять свои собственные пароли, но я не уверен, как это сделать. Имена пользователей и пароли хранятся в файле пользователя, который я создал с помощью htpasswd. В идеале пользователь мог бы войти на сервер и запустить команду htpasswd/svn/repos/users [имя пользователя], чтобы изменить свой пароль. (Очень, очень очевидная) проблема с этим подходом заключается в том, что если бы я сделал этот файл доступным для чтения и записи всем, они могли бы изменить любой пароль или даже удалить пользователей svn. Какие альтернативы? Я не разбираюсь в системном администрировании Unix-скриптов, поэтому извините меня, если это общий вопрос о нобе.Позволяет пользователям изменять свои пароли SVN

+0

Нашел отличный ответ на аналогичный вопрос: http://stackoverflow.com/questions/4736413/apache-htpasswd-secure-password-change –

ответ

2

Полагаю, вы используете Apache. Правильно?

Считаете ли вы использование LDAP для администрирования учетной записи? Apache легко интегрируется с LDAP, а доступ к учетной записи Windows Domain также может управляться LDAP. Это означает, что вы можете войти в Subversion, используя учетную запись 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, чтобы позволить пользователям изменять свой пароль Subversion. У меня его нет сейчас, но это не так сложно. Вы знаете пользователя и местоположение файла htpasswd. Все, что вам нужно сделать, это ввести тип пользователя в новый пароль, зашифровать его и переписать файл htpasswd. Я использовал символическую ссылку, чтобы сделать файл htpasswd видимым для моей PHP-программы.

Однако, я обнаружил, что изменение htpasswd может не повлиять до тех пор, пока не перезагрузится Apache, и вы не сможете просто перезапустить Apache, когда люди делают проверку Subversion.

+0

Не могли бы вы поделиться своей программой PHP? – Razavi

Смежные вопросы