douglas.nantes
(usa Ubuntu)
Enviado em 29/08/2011 - 13:53h
Olá meinhardt_jgbr
Na verdade o que eu estava querendo fazer era muito simples.
Minha ideia era trocar a senha de usuário com uma certa frequência (utilizando agendamento - cron) de forma automatizada, ou seja, sem que o usuário precisa-se fazer qualquer interação para trocar sua senha. Basta apenas que ele saiba qual a política de mudança de senha, assim ele sempre vai saber como obter o valor da variável $SENHA mas não vai precisar ficar trocando sua senha
O jonasricardo mencionou a utilização da passagem de parâmetros na execução do script, como no exemplo abaixo:
~$ ./mudaSenha.sh novasenha
Apesar de entender que ele estava apenas dando uma ideia genérica, para este caso não é muito aplicável por que se eu vou passar a senha como parâmetro basta eu digitar o comando:
~$ passwd usuario
e informar a nova senha manualmente, o mesmo vale para o "read", pois se eu vou ler a senha manualmente com o comando "read" basta eu deixar o passwd fazer isso por mim.
Valeu jonasricardo pelas ideias!
Por segurança não vou detalhar bem o que estou fazendo, mas vou comentar meio por cima.
A variável que eu criei $SENHA terá um valor que eu quero que seja a nova senha do usuário.
O valor, pode ser obtido de um arquivo de senhas por exemplo, ou gerado através de um comando de criptografia, ou utilizando uma cadeia de caracteres concatenados com um valor gerado pela função "date", por exemplo.
Mas o importante é que em certo dia da semana ou do mês, por exemplo, esse script rode e troque a senha do usuário. Para isso eu usei o comando mencionado anteriormente:
usermod -p $(openssl passwd -1 $SENHA) nomedousuario
esse comando atribui a um usuário "nomedousuario" uma nova senha que esta definida na variável $SENHA. A automatização vai ser feita através de agendamento no cron.
Isso eu defino no arquivo /etc/crontab (Debian e Ubuntu)
lá eu posso definir que a meia noite e doze minutos do dia primeiro de cada mês, por exemplo, a senha seja trocada. Assim:
12 0 1 * * root /DiretorioDoScript/./mudarSenha.sh
Para saber mais sobe como agendar no cron basta pesquisar na net.
Tem muita informação na net.
Ahh mais uma coisa, para descobrir qual senha estava sendo atribuída ao usuário da pra utilizar o comando
~$ echo $SENHA
no meu caso ficou inviável, então eu fiz assim:
1 - Desativei a proteção de senhas do SO
~$ pwunconv
2 - Procurei a senha, que não estava mais "protegida" no arquivo de usuários do SO
~$ cat /etc/passwd | grep nomedousuario
nomedousuario:senhadousuario:ID:ID:NOMECOMPLETO,,,:/home/nomedousuario:/bin/bash
3 - Ativei novamente a criptografia para agregar segurança ao armazenamento de senhas
~$ pwconv
Muita coisa mais sobre isso pode ser dita, mas tudo pode mudar muito dependendo do que você quer fazer. Por isso eu digo: -"Continue estudando! Pergunte ao Google! E para as coisas mas complicadas, pergunte no VOL, alguém pode saber como te ajudar" rsrsrs
Vlw. Abraços