Estou tentando configurar o svnserve
com o suporte do SASL no meu servidor Slackware 13.1 e, após algumas tentativas e erros, consigo fazer com que ele funcione com as configurações listadas abaixo:
svnserve.conf
[general]
anon-access = read
auth-access = write
realm = myrepo
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
/etc/sasl2/svn.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /etc/sasl2/my_sasldb
mech_list: DIGEST-MD5
usuários do sasldb
$ sasldblistusers2 -f /etc/sasl2/my_sasldb
test@myrepo: cmusaslsecretOTP
test@myrepo: userPassword
Você notará que a saída de sasldblistusers2
mostra meu usuário teste como tendo uma senha criptografada cmusaslsecretOTP , bem como um texto simples userPassword passwd. ou seja, se eu executasse strings /etc/sasl2/my_sasldb
, veria a senha dos usuários teste em texto simples. Estas duas entradas de senha foram criadas com o seguinte comando recomendado do livro de subversão:
saslpasswd2 -c -f /etc/sasl2/my_sasldb -u myrepo test
Depois de ler man saslpasswd2
, vejo a seguinte opção:
-n Don't set the plaintext userPassword property for the user.
Only mechanism-specific secrets will
be set (e.g. OTP, SRP)
Isso é exatamente o que eu quero fazer, suprimir a senha de texto simples e usar apenas o segredo específico do mecanismo (OTP no meu caso). Então limpei /etc/sasl2/my_sasldb
e executei novamente saslpasswd2
como:
saslpasswd2 -n -c -f /etc/sasl2/my_sasldb -u myrepo test
Eu então acompanho com um sasldblistusers2
e vejo:
$ sasldblistusers2 -f /etc/sasl2/my_sasldb
test@myrepo: cmusaslsecretOTP
Perfeito! Acho que agora só tenho senhas criptografadas .... somente o cliente svn
do Linux nem o cliente TortoiseSVN
do Windows podem se conectar a meu repo mais. Ambos me apresentam o desafio user / pass, mas isso é o máximo que eu entendo.
TLDR
Então, qual é o sentido do SVN suportar o SASL se meu sasldb precisar armazenar suas senhas em texto simples para funcionar?