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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top