pessoal boa tarde,

Meu novo problema é o seguinte:
Tenho um servidor SVN que é autenticado pelo .htpasswd do apache.
Onde os usuários para alterar o repositório devem estar obrigatoriamente 
cadastrados no .htpasswd, que possui a senha criptografada.
Recentemente criei um CGI para gerar esta senha inicial do arquivo, e 
agora desejo criar outro CGI para o próprio usuário trocar a sua senha.

O PROBLEMA É O SEGUINTE:
uso o *htpasswd -sbn $pwfile $user $pw*
entretanto com este comando o usuário que já tem permissão pode criar 
outros usuários, o que não desejo. Como posso capturar o usuário da 
sessão e fazer uma validação inicial antes de alterar a senha?

segue o código:
cat cgi-bin/chpwd.cgi
#!/bin/bash

echo "content-type: text/html"
echo "
<html> <head> <title> CGI script para alterar senha do usuário SVN 
</title> </head>
<body>
<h1> Alterar senha do usuario SVN </h1>
"
OUT=""
VAR=$(sed -n 1p)
PWFILE="/var/www/file.pw"
login=$(echo $VAR|awk -F'&' '{print $1}'|cut -d'=' -f2)
pw=$(echo $VAR|awk -F'&' '{print $2}'|awk -F= '{print $2}')
nlogin=$login


if [ "$PWFILE" ]; then echo "$PWFILE <br/>"; fi
if [ "$VAR" ]; then echo "$VAR <br/>"; fi
if [ "$login" ]; then echo "$login <br/>"; fi
if [ "$nlogin" ]; then echo "$login <br/>"; fi
if [ "$pw" ]; then echo "$pw <br/>"; fi

if [ "$VAR" ];then
        #login="$(echo $VAR | sed 's/\(.*=\)\(.*\)\(\&.*\)/\2/')"
        #pw="$(echo $VAR | sed 's/\(.*=\)\(.*\)\(\&.*\)/\2/')"
        echo "<br>"
        echo "senha cifrada de <b>$login</b>"
        echo "<font color=#008822> <b>"
        echo "<pre>"
        #echo "htpasswd -sb $PWFILE $login $pw"
        htpasswd -sb $PWFILE $login $pw&&echo "Senha alterada com sucesso"
        echo "</pre>"
        echo "</b> </font>"
else
        echo "
        <form method=\"POST\" action=\"chpwd.cgi\">
           <table>
              <tr>
                 <td>
                   <b>Entre com o nome de login:</b>
                 </td>
                 <td>
                   <input onfocus type=text size=40 name=login value=\"\">
                 </td>
              </tr>
              <tr>
                 <td>
                    <b>Entre com sua senha:</b>
                 </td>
                 <td>
                    <input type=password size=40 name=pw value=\"\">
                 </td>
              </tr>
              <tr>
                 <td>
                    <input type=submit value=\"enviar\">
                 </td>
              </tr>
           </table>
        </form>"
fi

/bin/cat << fim
</body>
</html>
fim


Responder a