Subversion, webdav, LDAP e restrizioni sulle cartelle
Inviato da Matteo Mattei / 17th maggio 2012
Se avete bisogno di configurare un server svn su Linux con autenticazione tramite LDAP, webdav ed inserire specifiche restrizioni su determinate cartelle, potete seguire le seguenti istruzioni.
- Uno: dovete installare subversion e apache sul vostro server Linux (ometterò questa parte).
- Two: dovete configurare webdav per accedere ad svn tramite http e configurare l’accesso tramite LDAP.
Assicuratevi di avere i seguenti moduli di apache installati e configurati:
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so LoadModule authn_alias_module modules/mod_authn_alias.so
Assunzioni:
- Sono solito configurare subversion sotto la directory /srv/svn.
- Gli utenti a cui è permesso di accedere a subversion devono appartenere al gruppo LDAP CN=SVN-AUTHORIZATION,OU=Groups GSO,DC=test,DC=example,DC=com
Modificate il file /etc/apache2/mods-enabled/dav_svn.conf (su Ubuntu, su altre distribuzioni potrebbe essere posizionato altrove) ed assicuratevi di avere le seguenti configurazioni:
<Location /svn/> # Abilitare svn su webdav DAV svn # Impostare il parent path per repositori multipli SVNParentPath /srv/svn/ # Impostare il tipo di autenticazione AuthType Basic # Impostare il nome dell'autenticazione AuthName "FLR Subversion Repository" # Impostare il file che conterrà le autorizzazioni (permessi) AuthzSVNAccessFile /etc/apache2/dav_svn.authz # Consentire di listare il parent path SVNListParentPath On # Utilizzare LDAP per l'autenticazione AuthBasicProvider ldap # Il server LDAP è autoritativo (cioè l'autenticazione finale è delegata a LDAP) AuthzLDAPAuthoritative On # Utente di bin per LDAP AuthLDAPBindDN "CN=svnbind,OU=Users OS,DC=test,DC=example,DC=com" # Password dell'utente di bind per LDAP AuthLDAPBindPassword mypassword # LDAP URL AuthLDAPUrl "ldap://ldap_ip_address:389/DC=test,DC=example,DC=com?sAMAccountName?sub?(&(&(objectClass=user)(objectCategory=person))(memberof=CN=SVN-AUTHORIZATION,OU=Groups GSO,DC=test,DC=example,DC=com))" # E' necessario un utente valido Require valid-user </Location>
Three Create il file dei permessi /etc/apache2/dav_svn.authz
Dovrà avere il seguente contenuto in base alle vostre esigenze:
[groups] admin = matteo group1 = user1, user2, user3 group2 = user2 group3 = user4 ################################### [/] * = r @admin = rw ################################### [repository1:/] * = rw ################################### [repository2:/] * = @admin = rw @group1 = rw ################################### [repository3:/] * = @admin = rw @group2 = rw @group1 = r ################################### [repository4:/] * = r @admin = rw [repository4:/trunk/sources] * = r @admin = rw @group3 = rw ###################################
Adesso riavviate apache con /etc/init.d/apache2 restart
Da root impartite i seguenti comandi:
cd /srv/svn svnadmin create repository1 chown www-data.www-data -R repository1 svnadmin create repository2 chown www-data.www-data -R repository2 svnadmin create repository3 chown www-data.www-data -R repository3 svnadmin create repository4 chown www-data.www-data -R repository4
Siete adesso pronti per utilizzare subversion con account LDAP, webdav e restrizioni su directory personalizzate.