Question

J'ai mis en place un serveur SVN, et je veux permettre aux utilisateurs d'être en mesure de changer leur mot de passe, mais je ne sais pas comment accomplir cela. Les noms d'utilisateur et mots de passe sont stockés dans un fichier d'utilisateurs que j'ai créé en utilisant htpasswd. Idéalement, un utilisateur capable de se connecter au serveur et exécutez la commande htpasswd / svn / repo / utilisateurs [nom d'utilisateur] pour changer leur mot de passe. Le problème (très, très évident) avec cette approche est que si je fait que lisible par fichier et inscriptible à tout le monde, ils seraient en mesure de mot de passe changement qui que ce soit, ou même de supprimer des utilisateurs svn. Quelles sont les alternatives? Je ne suis pas d'expérience avec l'administration du système unix de scripts shell, alors excusez-moi si cela est une question totale noob.

Était-ce utile?

La solution

Je suppose que vous utilisez Apache. Droit?

Avez-vous envisagé d'utiliser LDAP pour l'administration des comptes? Apache avec LDAP intègre plutôt bien, et l'accès aux comptes de domaine Windows peuvent également être commandés LDAP. Cela signifie, vous pouvez vous connecter Subversion en utilisant votre compte Windows et mot de passe et vous pouvez utiliser des groupes Windows pour accéder à l'aide de contrôle. Voici ma configuration:

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>

J'ai écrit un petit programme PHP pour permettre aux utilisateurs de changer leur mot de passe de Subversion. Je ne l'ai pas maintenant, mais ce n'est pas difficile à faire. Vous connaissez l'utilisateur et l'emplacement du fichier htpasswd. Tout ce que vous avez à faire est d'avoir le type d'utilisateur dans un nouveau mot de passe, chiffrer et réécrire le fichier htpasswd. J'ai utilisé un lien symbolique pour rendre le fichier htpasswd visible à mon programme PHP.

Cependant, je trouve que le changement htpasswd pourrait ne pas prendre effet qu'après le redémarrage d'Apache, et vous ne pouvez pas simplement redémarrer Apache quand les gens font un achat Subversion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top