2011-12-01 8 views
3

SVN 서버를 설정했고 사용자가 자신의 암호를 변경할 수있게하고 싶지만이를 수행하는 방법을 모르겠습니다. 사용자 이름과 암호는 htpasswd를 사용하여 작성한 사용자 파일에 저장됩니다. 이상적으로, 사용자는 서버에 로그인하여 htpasswd/svn/repos/users [username] 명령을 실행하여 암호를 변경할 수 있습니다. 이 접근법의 (아주, 아주 명백한) 문제는 만약 내가 그 파일을 모든 사람들에게 읽기 쉽고 쓰기 가능하게한다면 그들은 누군가의 암호를 바꾸거나 심지어 svn 사용자를 삭제할 수 있다는 것이다. 몇 가지 대안은 무엇입니까? 나는 셸 스크립팅의 유닉스 시스템 관리에 경험이 없기 때문에 이것이 정말로 멍청한 질문이라면 실례합니다.사용자가 SVN 암호를 변경할 수 있도록 허용

+0

비슷한 질문에 대한 좋은 답변을 찾았습니다. http://stackoverflow.com/questions/4736413/apache-htpasswd-secure-password-change –

답변

2

나는 아파치를 사용하고있다. 권리?

계정 관리를 위해 LDAP을 사용해 보셨습니까? Apache는 LDAP와 잘 통합되며 Windows 도메인 계정 액세스는 LDAP로도 가능합니다. 즉, Windows 계정과 암호를 사용하여 Subversion에 로그인 할 수 있으며 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 파일을 다시 작성하기 만하면됩니다. 심볼릭 링크를 사용하여 PHP 프로그램에서 htpasswd 파일을 볼 수있게했습니다.

그러나 htpasswd를 변경하면 아파치가 다시 시작될 때까지 영향을 미치지 않을 것이고 사람들이 Subversion 체크 아웃을 할 때 단순히 아파치를 재시작 할 수 없다는 것을 알게되었습니다.

+0

PHP 프로그램을 공유해 주시겠습니까? – Razavi

관련 문제