Pregunta

He configurado un servidor SVN y quiero permitir que los usuarios puedan cambiar sus propias contraseñas, pero no estoy seguro de cómo lograr esto. Los nombres de usuario y las contraseñas se almacenan en un archivo de usuarios que creé usando htpasswd. Idealmente, un usuario podría iniciar sesión en el servidor y ejecutar el comando htpasswd/svn/repos/usuarios [nombre de usuario] para cambiar su contraseña. El problema (muy, muy obvio) con este enfoque es que si hiciera que ese archivo sea legible y que se escribiera para todos, podrían cambiar la contraseña de cualquier persona o incluso eliminar los usuarios de SVN. ¿Cuáles son algunas alternativas? No tengo experiencia con la administración del sistema UNIX de scripting de shell, así que disculpe si esta es una pregunta total de novato.

¿Fue útil?

Solución

Supongo que estás usando Apache. ¿Derecha?

¿Has considerado usar Ldap para la administración de cuentas? Apache se integra con LDAP bastante bien, y el acceso a la cuenta de dominio de Windows también puede ser impulsado por LDAP. Eso significa que puede iniciar sesión en la subversión utilizando su cuenta y contraseña de Windows y puede usar grupos de Windows para ayudar a controlar el acceso. Aquí está mi configuración:

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>

Una vez escribí un pequeño programa PHP para permitir a los usuarios cambiar su contraseña de subversión. No lo tengo ahora, pero no es tan difícil de hacer. Conoce al usuario y la ubicación del archivo htpasswd. Todo lo que tiene que hacer es que el usuario escriba una nueva contraseña, la cifre y reescriba el archivo htpasswd. Utilicé un enlace simbólico para hacer que el archivo HTPassWD sea visible para mi programa PHP.

Sin embargo, descubrí que cambiar HTPasswd podría no tener efecto hasta que Apache se reinicie, y no puede simplemente reiniciar Apache cuando las personas realizan un pago de subversión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top