Código desenvolvido
21/10/2002 - TestaSenha: Testa se a senha passada como parâmetro (ou não) é válida ou não.Este software está sob a licença GPL.
O testasenha foi programado em linguagem C e testado em Red Hat 7.3, Slackware 8.1 e Conectiva 5.1. Este faz testes de senhas em formato shadow (crypt+md5).
Eu estou aprendendo a programar em C, portanto o testasenha provavelmente pode ser melhorado.
Por favor, envie-me suas melhorias para que eu possa disponibilizar ao público (seu nome será colocado nos créditos).
Nota:
Constatei um problema em sistemas que utilizam o chetcpasswd para troca de senhas. O chetcpasswd (pelo menos a versão 1.8.x) não gera uma senha nova conforme o padrão (o que diminui a segurança) das senhas geradas pelo próprio comando passwd (crypt+md5), logo, o testasenha não funciona. Não sei se na versão atual do chetcpasswd este problema ainda existe (já mandei um e-mail para o autor).
O limite para tamanho do nome de usuário e senha é de 49 caracteres.
Códigos de retorno (EXIT STATUS):
0 (zero) - Senha válida.
1 (um) - Senha inválida.
2 (dois) - Tamanho de nome de usuário ou senha excedidos.
Através destes estados de saída, é possível criar scripts shell como o seguinte:
./testasenha eduardo iniciante > /dev/null if [ "$?" -eq 0 ] ; then echo "Senha válida!" fi
TGZ (8134 bytes): testasenha-0.1.tgz
(md5sum: 0e5ce65eff25bd9a960ccca4a991ed7e)
Zip (9002 bytes): testasenha-0.1.zip
(md5sum: 136df50733f661f8ead0a418a02333e3)
Passos para o uso:
Compilar:
gcc testasenha-0.1.c -lcrypt -otestasenha
Se outros usuários além do root forem utilizar o testasenha, a permissão deve ser 4755:
chmod 4755 testasenha
Sintaxe de uso:
./testasenha user senha
user é o nome do usuário e a senha é limpa, conforme digitada pelo usuário.
O testasenha, se chamado sem parâmetros, irá pedir nome de usuário e senha.
Utilizando o TestaSenha para autenticação com SQUID
Altere a linha:
res ? printf("Senha valida") : printf("Senha invalida");
Para:
res ? printf("OK") : printf("ERR");
Altere a permissão do executável (após compilação) para 4755:
chmod 4755 testasenha
Configurar o parâmetro de autenticação do squid para
authenticate_program /usr/bin/testasenha
Obrigado ao Carlão Dias (carlao_dias bol.com.br) pelo envio da dica.