Republicação de dicas-l.com.br, com adaptações... Integrando OpenLDAP, Subversion, Webdav e Apache2
Assim, apenas o www-data e os usuários do grupo terão acesso aos arquivos. Além disso, estamos setando o bit SGID nos diretórios, para que os arquivos criados também sejam do grupo.
Crie o arquivo do site em /var/apache2/sites-available/repo01. O conteúdo deve ser mais ou menos assim:
Ambiente
- Servidor Subversion e apache2;
- Servidor OpenLDAP;
- Svn com vários repositórios, permissões de arquivos via OpenLDAP;
- Controle via grupos.
Configuração do repositório
O usuário www-data precisa ter acesso aos arquivos do repositório. Então supondo que sua base seja /var/svn/repo01, precisamos garantir as permissões com o comando:cd /var/snv/repo01 chown -R www-data:grupo1 find repo01/ -type f -print -exec chmod 660 {} \; find repo01/ -type d -print -exec chmod 2770 {} \;
Assim, apenas o www-data e os usuários do grupo terão acesso aos arquivos. Além disso, estamos setando o bit SGID nos diretórios, para que os arquivos criados também sejam do grupo.
Configuração do apache2
No apache 2.2.x, o módulo utilizado para autenticação via ldap é o mod_authnz_ldap. Iremos precisar do módulo dav_svn (pacote libapache2-svn). Habilite-os com o a2enmod.Crie o arquivo do site em /var/apache2/sites-available/repo01. O conteúdo deve ser mais ou menos assim:
Habilite o site com o a2ensite, recarregue o apache2 e pronto, seu apache2 está acessando o repositório svn e autenticando via openldap.ServerAdmin administrador@seudominio.com.br ServerName svn.seudominio.com.br DocumentRoot /var/www/ ErrorLog /var/log/apache2/repo01/error.log LogLevel notice CustomLog /var/log/apache2/repo01/access.log combined #habilita o repositorio DAV svn # caminho para o repositorio SVNPath /var/svn/repo01 # tipo de autenticacao AuthType Basic # identificação do repositorio AuthName "Repositorio SVN" # provedor de autenticacao AuthBasicProvider ldap # Está on porque se a autenticação via ldap falhar, não deve pesquisar outras bases AuthzLDAPAuthoritative on # URL da base LDAP. O ?uid especifica atributo pesquisar (uid) AuthLDAPURL "ldap://ldap.seudominio.com.br/ou=Usuarios,dc=seudominio,dc=com,dc=br?uid" # Informa que atributo usar para verificar se o usuario faz parte do grupo ou não AuthLDAPGroupAttribute memberUid # especifica que a busca deve ser feita por usuario, e nao pelo DN AuthLDAPGroupAttributeIsDN off #usuario que irá fazer a consulta no ldap AuthLDAPBindDN "cn=subversion,dc=seudominio,dc=com,dc=br" #senha do usuario acima AuthLDAPBindPassword "senha" # grupos que terão acesso ao repositorio Require ldap-group cn=repo01,ou=Grupos,dc=seudominio,dc=com,dc=br
Comentários