Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Livelli di accesso

Diversificare i privilegi d'accesso in base all'utente
Diversificare i privilegi d'accesso in base all'utente
Link copiato negli appunti

Finora abbiamo visto come autenticare un utente, cioè fare in modo che debba in qualche modo identificarsi quando tenta di accedere al nostro repository, ad esempio tramite username e password, oppure tramite un certificato. È possibile tuttavia che si voglia differenziare l'accesso tra diversi utenti, ad esempio aprendo il repository in sola lettura per alcuni, e in modifica per altri.

Il modo più semplice per impostare un diverso tipo di accesso è quello di inserire la direttiva Require valid-user nel tag <Limit [operazioni]> o <LimitExcept [operazioni]>.

Quando Apache trova questa opzione, richiede l'autenticazione solo per le operazioni specificate (Limit), o per tutte le operazioni tranne quelle specificate (LimitExcept).

Questa opzione però si rivela scomoda e poco flessibile rispetto a all'uso del modulo authz_mod_svn, per cui continueremo ad usare il modulo nel resto della guida. Per ulteriori dettagli su Limit e LimitExcept si rimanda guida ufficiale.

Il pacchetto dovrebbe essere già stato installato insieme alle librerie svn per Apache (libapache2-svn). Su Debian, è possibile verificare la presenza del file mod_authz_svn nella cartella /usr/lib/apache2/modules, mentre il caricamento vero e proprio del modulo è effettuato dalla direttiva:

LoadModule authz_svn_module modules/mod_authz_svn.so

che è inclusa nel file /etc/apache2/mods-available/dav_svn.load.

L'ultimo passaggio è quello di specificare nel file del VirtualHost il percorso del file di controllo degli accessi.

1  <VirtualHost *>
2  LoadModule dav_svn_module modules/mod_dav_svn.so
3  ServerName svn.vd-devel
4  DocumentRoot /var/svn/guidasvn/
5  <Location /repos>
6  DAV svn
7  SVNPath /var/svn/guidasvn
8  Require valid-user
9  AuthType Basic
10 AuthName "Inserisci i dati per l'accesso al repository"
11 AuthUserFile /etc/svn-htpasswd
12 AuthzSVNAccessFile /etc/svn-access
13 </Location>
14 </VirtualHost>

Ora compiliamo questo file di controllo degli accessi. Tale file è diviso in sezioni, ciascuna delle quali usa questo formato:

[repository:path]
username = rw

Nota: le parentesi quadre fanno parte del formato del file.

Quindi, se per il repository guidasvn voglio dare accesso in lettura/scrittura all'utente francesco, il file conterrà:

[guidasvn:/]
francesco = rw

Per specificare una autorizzazione diversa per un percorso specifico, ad esempio dare accesso all'utente sergio per la specifica cartella immagini del repository guidasvn, la direttiva diventa:

[guidasvn:/immagini]
sergio = rw

È possibile specificare una regola generale per tutti i repository – ad esempio per dare accesso a chiunque in sola lettura – usando queste direttive all'inizio del file:

[/]
* = r

E così via.

Dopo aver compilato il file, possiamo riavviare Apache e provare che tutto funzioni a dovere (sempre navigando il repository via browser). In caso contrario, verifichiamo di avere scritto tutto giusto, consultiamo il log di Apache, fino a risolvere l'inghippo. Possiamo fare con calma: la configurazione del server è completa.

Ti consigliamo anche