Subversion + LDAP
A integração de autenticação LDAP para acesso a repositórios Subversion está dependente do uso de SASL.
Este manual destina-se a instalações não baseadas no protocolo svn:// puro (sem ser por SSH ou por WebDAV).
Como os caminhos podem variar e há inconsistências mesmo na mesma distribuição, há recomendações de certas ligações simbólicas que convém criar-se. De notar que, pelo menos em distribuições baseadas em Ubuntu, o svnserve não tem configurações base para uso com o systemd ou qualquer outro serviço de init alternativo. Assim sendo, também se apresenta aqui a listagem dos ficheiros necessários para que o svnserve possa ser adicionado ao arranque.
Excepto se indicado em contrário, estes comandos devem ser executados como root ou com o sudo.
/etc/systemd/system/svnserve.service:
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
RuntimeDirectory=svnserve
PIDFile=/run/svnserve/svnserve.pid
EnvironmentFile=/safe/etc/default/svnserve
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
User=svn
Group=svn
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=svnserve.service
Na configuração padrão do serviço svnserve, deverá preencher a variável SVNROOT com o valor correcto. Poderá também alterar o caminho que se segue a "--log-file" para outro destino que lhe seja mais conveniente.
/etc/default/svnserve.conf:
SVNROOT="<caminho base dos seus repositórios>"
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root $SVNROOT --log-file /var/log/svnserve/svnserve.log"
/usr/lib/sasl2/svn.conf:
pwcheck_method: saslauthd
mech_list: LDAP
Recomendamos que crie um link simbólico da pasta /usr/lib/sasl2 em /etc:
ln -s /usr/lib/sasl2 /etc
É preferível, também, ter um utilizador e um grupo "svn" no sistema, devendo substituir, nos comandos abaixo, os dados conforme necessário:
groupadd -r svn
useradd -r -d <caminho base dos seus repositórios> -g svn svn
mkdir <caminho base dos seus repositórios>
chown -R svn:svn <caminho base dos seus repositórios>
chmod 700 <caminho base dos seus repositórios>
Em algumas distribuições, há problemas de permissões que vão impedir o svnserve de correctamente contactar o serviço sasl, pelo que essas permissões devem ser corrigidas:
chmod 711 /var/run/saslauthd