Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash --norc
- #
- # SEGURANÇA: Força o uso do caminho COMPLETO para os comandos do sistema.
- unset PATH
- set -e
- declare post usuario senha
- # Método POST é passado para o CGI via STDIN
- post=$(/bin/sed -n '1,$p')
- # Pega os valores dos campos do formulário de acordo com a tag 'name'
- usuario=$(echo $post | /bin/sed 's/\(login=\)\(.*\)\(\&senha=.*\)/\2/;s/+/ /g')
- senha=$(echo $post | /bin/sed 's/\(.*&senha=\)\(.*\)\(\&submit=.*\)/\2/g')
- # *** AVISO DE SEGURANÇA ***
- # Sempre, sempre e sempre!!! trate os dados fornecidos pelos usuários, principalmente
- # ao usar CGI. De preferência remova caracteres potencialmente perigosos como:
- # ; | & * $ < > ( ) `
- echo -e "Content-Type: text/html; charset=utf-8\n\n"
- if [ -z "$post" ]; then
- # Formulario basico
- /bin/cat <<-FIM
- <html>
- <head><title>CGI + Shell Script</title></head>
- <body>
- <form name="formulario" method="POST" action="">
- <table align="center">
- <tr><td>Login: </td><td><input type="text" size="30" name="login" id="login"></td><br>
- <tr><td>Senha: </td><td><input type="password" size="30" name="senha" id="senha"></td><br>
- </table>
- <p align="center"><input type="submit" name="submit" value="Alterar"></p>
- </form>
- </body>
- </html>
- FIM
- else
- [ -z "$usuario" -o -z "$senha" ] && { echo "<strong>Preencha todos os campos!</strong>"; exit 1; }
- # Altera a senha (Atente para as devidas permissoes!)
- echo "${usuario}:$senha" | /usr/sbin/chpasswd
- if [ $? -eq 0 ]; then
- echo -e "$senha\n$senha" | /usr/bin/smbpasswd -s -a $usuario
- if [ $? -eq 0 ]; then
- echo "<p>Senha alterada com sucesso.</p>"
- exit 0
- else
- echo "<strong>Erro ao cadastrar senha no Samba!</strong>"
- exit 1
- fi
- else
- echo "<strong>Nao foi possivel alterar sua senha!</strong>"
- exit 1
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement