[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
- shellscript CGI,
Ricardo Brito do Nascimento <=