Come faccio ad aggiungere un utente in SVN?


12

AGGIORNAMENTO # 3: Penso di averlo trovato.
/etc/httpd/conf.d/subversion.conf

<Location /repos>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

svn-auth-conf è nel formato di

user1:$apr1$randome letters ... $random letters and numbers

Mi sento come se avessi usato alcuni strumenti da riga di comando per aggiungere utenti, ma non ricordo cosa.

AGGIORNAMENTO # 2: individuare http.conf fornisce questi risultati

/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf

Non vedo nulla in nessuno dei due che sembrasse correlato alla sovversione. Posso pubblicare i file qui se mi saranno di aiuto.

domanda originale:

Alcuni anni fa, ho installato e impostato sovversione. Non ricordo come ho aggiunto un utente. Ho bisogno di aggiungerne un altro ora, ma quando ho controllato il passwdfile non c'erano utenti definiti, né c'era qualcosa impostato nel svnserve.conffile - entrambi avevano tutto commentato. Questo è l'unico modo che posso trovare per aggiungere utenti tramite Google. Quindi l'ho provato:

passwd

user1 = password1
user2 = password2

svnserve.conf

anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos

ma posso ancora accedervi solo con user1, anche se user1non è un utente sul server Linux. C'è un altro modo per aggiungere utenti o ho qualcosa di sbagliato nella mia configurazione?

aggiornare:

Ho aggiunto la seguente riga al mio file svnserve.conf

authz-db = authz

quindi il mio file authz è simile a questo

authz [gruppi] devs = user1, user2

[repos:/]
devs = rw

continua a non funzionare. la password per user1 è diversa nel passwd rispetto a quella che utilizzo per accedere. Quindi penso che sovversione non lo usi affatto per l'autenticazione. soprattutto perché il file era vuoto prima ed ero ancora in grado di accedere. c'è un modo per assicurarsi che utilizza i file svnserve, passwd, authz per l'autenticazione? c'è un altro file di configurazione da qualche parte?

Risposte:


8

L'autenticazione Subversion in genere ha due parti. Il primo è un repository di password di qualche tipo. Il secondo è un elenco di controllo di accesso. L'elenco delle password viene utilizzato per autenticare gli utenti e controllare le loro password, ma è anche necessario impostare quali utenti hanno accesso a quali risorse.

Esistono diversi tipi di repository di password. Non ho familiarità con il tipo passwd , utilizzo il tipo htpasswd che utilizza gli stessi file utente / password utilizzati da Apache per l'autenticazione utente. Aggiungo utenti a questo file con htpasswd .htpasswd username. Sembra che tu abbia eseguito correttamente questo passaggio per il tuo tipo di password.

La seconda parte è l'ACL. Subversion dovrebbe avere un file chiamato accessda qualche parte con sezioni per ciascuno dei tuoi repository. Sarà necessario aggiungere una riga nel repository a cui si desidera accedere username = rwper consentire a quell'utente l'accesso in lettura / scrittura a quel repository.


ci proverò quando torno a casa. sembra familiare.
scott

Non penso che sia così. non c'era alcun file .htpasswd sul mio server.
Scott

6

La configurazione del server SVN (principalmente) è composta da tre file:

  • authz
  • passwd
  • svnserve.conf Questo è il file principale (authz-db = authz)

Quindi ci fornisci solo due file di configurazione, controlla che il file authz contenga:

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

per il test di progetto che desideri concedere l'accesso


Ho provato questo non ha funzionato. la password che utilizzo per accedere come user1 è diversa da quella che ho nel file passwd. quindi non penso che lo stia usando affatto.
Scott

per favore, controlla che stai usando il giusto file di configurazione: qual è l'output perps aux|grep svn
Sergey

E un'altra domanda. Come si ottiene la struttura della directory dei repository (svn: // o tramite il server http)?
Sergey,

root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
Scott

tramite server http
scott

4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

Nota: utilizzare esattamente lo stesso nome file e percorso utilizzato nel subversion.conffile. Questo esempio usa il /etc/svn-auth-usersfile.


2
htpasswd -m /etc/subversion/svn-auth-file yourusername

Chiederà quindi la password e confermerà la password.


1

puoi usare il comando,

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX è stato il nome utente, quindi chiederà la password

questo è solo se si configura svn con apache, che non legge le cartelle svn conf nome utente password file conf

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.