Permettere agli utenti di cambiare le loro password SVN
Domanda
Ho creato un server SVN, e voglio permettere agli utenti di essere in grado di cambiare le proprie password, ma non sono sicuro di come per ottenere questo risultato. I nomi utente e le password vengono memorizzate in un file di utenti che ho creato utilizzando htpasswd. Idealmente, un utente in grado di accedere al server ed eseguire il comando htpasswd / svn / repos / utenti [username] per cambiare la propria password. Il (molto, molto evidente) problema di questo approccio è che se ho fatto quel file di lettura e scrittura a tutti, sarebbero in grado di cambiare la password di qualcuno, o gli utenti svn anche cancellare. Quali sono le alternative? Io non sono l'esperienza con l'amministrazione di sistema unix di scripting di shell, così mi scusi se questa è una domanda totale niubbo.
Soluzione
lo prendo si sta utilizzando Apache. Giusto?
Hai pensato di usare LDAP per conto dell'amministrazione? integra Apache con LDAP piuttosto bene, e l'accesso agli account di dominio di Windows possono anche essere guidati LDAP. Ciò significa che è possibile accedere al Subversion utilizzando il tuo account di Windows e la password ed è possibile utilizzare i gruppi di Windows per l'accesso aiuto controllo. Qui è la mia messa a punto:
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 volta ho scritto un piccolo programma PHP per consentire agli utenti di cambiare la propria password Subversion. Io non ce l'ho ora, ma non è poi così difficile da fare. Sai l'utente e il percorso del file htpasswd. Tutto quello che dovete fare è avere il tipo di utente in una nuova password, cifrare, e riscrivere il file htpasswd. Ho usato un link simbolico per rendere il file htpasswd visibile al mio programma PHP.
Tuttavia, ho scoperto che la modifica htpasswd potrebbe non abbiano effetto fino a dopo riavvio di Apache, e non si può semplicemente riavviare Apache quando le persone stanno facendo un checkout Subversion.