shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

shellscript CGI


From: Ricardo Brito do Nascimento
Subject: shellscript CGI
Date: Wed, 14 May 2008 14:38:29 -0300
User-agent: Thunderbird 2.0.0.5 (X11/20070719)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]