Script para mudar senha [RESOLVIDO]

1. Script para mudar senha [RESOLVIDO]

Douglas Nantes Gualberto
douglas.nantes

(usa Ubuntu)

Enviado em 25/08/2011 - 17:20h

Pessoal vi no http://www.forumdebian.com.br
a seguinte linha de comando para mudar a senha de um usuário
usermod -p $(openssl passwd -1 novasenha) nomedousuario
essa linha vai evitar que o usuário tenha que interagir como é no caso do comando passwd

só que eu queria colocar essa linha em um script para automatizar algumas coisas
No script não da erro, mas também não funciona a atribuição. No script eu fiz assim:
usermod -p $(openssl passwd -1 $SENHA) nomedousuario

quero pegar o valor da variável $SENHA para ser a senha do usuário "nomedousuario"
Alguém tem ideia de como eu tenho que adaptar o script para funcionar?




  


2. Re: Script para mudar senha [RESOLVIDO]

jonas ricardo rossi cardoso
jonasricardo

(usa Debian)

Enviado em 25/08/2011 - 18:51h

não sei c entendi, mas vamos tentar.

caso vc queira receber receber o parametro através da chamada do script ex: mudaSenha.sh <senhaNova>

dentro do script vc vai utilizar a variável $1 a $9 para cada parametro passado.

caso queira receber dentro do programa utiliza o comando: read variavel

espero ter ajudado


3. Re: Script para mudar senha [RESOLVIDO]

Douglas Nantes Gualberto
douglas.nantes

(usa Ubuntu)

Enviado em 29/08/2011 - 09:36h

Acho que você não entendeu.

Meu problema não é em relação ao valor da variável $SENHA.
Como atribuir valor a essa variável eu já decidi e funciona perfeitamente.
Vou tentar explicar melhor o que estou tentando fazer, se eu abrir o terminal e logar como root e digitar o comando: "usermod -p $(openssl passwd -1 SenhadoUsuario) douglas". Para o usuário "douglas" vai ser definida a senha "SenhadoUsuario"! Fiz o teste e funciona perfeitamente. O que acontece é que se eu copiar esse comando para dentro de um script, mudarSenha.sh, como você sugeriu no exemplo, e tentar executar ./mudarSenha.sh ele não dá erro e realmente troca a senha, por que eu não consigo mais logar com a senha anterior, mas a atualização não funciona como esperado pois se eu tentar logar digitando a senha "SenhadoUsuario" não loga de jeito nenhum.

Vlw a tentativa jonasricardo


4. Re: Script para mudar senha [RESOLVIDO]

Douglas Nantes Gualberto
douglas.nantes

(usa Ubuntu)

Enviado em 29/08/2011 - 10:49h

Descobri qual era o problema.

Eu estava atribuindo um valor a variável $SENHA de uma forma que estava gerando uma cadeia de caracteres diferentes da que eu esperava, ou seja, o comando
usermod -p $(openssl passwd -1 $SENHA) nomedousuario
funciona normalmente dentro do script, o meu erro foi não verificar direito o conteúdo da variável $SENHA.

Vlw.
Abraços


5. Re: Script para mudar senha [RESOLVIDO]

j g meinhardt
meinhardt_jgbr

(usa Debian)

Enviado em 29/08/2011 - 13:13h

Muito boa informação Douglas. Porque você não aproveita que está com o assunto quente na memória e prepara uma boa Dica para ajudar outros usuários que tenham o mesmo problema.


6. Re: Script para mudar senha [RESOLVIDO]

Douglas Nantes Gualberto
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


7. Re: Script para mudar senha [RESOLVIDO]

Bruno Medeiros Lacet
brunolacet

(usa Debian)

Enviado em 30/07/2013 - 09:47h

SCRIPT PARA USUÁRIO EM DOMÍNIO (Talvez sirva alguma parte para ser adaptado por alguém sem domínio)
Meu script de alterar senha do usuário e ativando a opção de que o usuário deverá alterá a senha no primeiro logon no domínio abaixo.

---
# Adaptado por: Bruno Medeiros Lacet
# Data: 30/07/2013


# Pedindo para digitar o nome do usuario que sera alterado a senha
clear
echo -n "Digite o nome do usuario que sera alterado a senha: "
read usuario

echo " "
echo " "
echo " "

# Alterando a senha do usuario
echo -n "Por favor "
/usr/bin/passwd $usuario

echo " "
echo " "
echo " "

# Alterando a senha do usuario no SAMBA
echo "Por favor digitar a mesma senha inserida acima para o SAMBA"
/usr/bin/smbpasswd $usuario

echo " "
echo " "
echo " "

# Comando o qual fara com que peca para alterar a senha no proximo logon
echo -n "Ativando comando para o usuario alterar a senha no primeiro logon: "
net sam set pwdmustchangenow $usuario yes

echo " "
echo " "
echo " "

# Final do processo de alteracao de senha do usuario
echo "Atualizacao realizada com sucesso para o usuario ".$usuario." alterar senha no primeiro logon."

echo " "
echo " "
echo " "

# Sera mostrado ao administrador o usuario que teve a senha alterada
echo "Usuario que teve senha alterada foi: $usuario"

echo " "
echo " "
echo " "

# Mostrando na tela perguntando se quer alterar outra senha de usuario
echo "Alterar senha de algum outro usuario? [1]Sim - [2]Nao"
echo -n "Resposta: "
read processo

# Verificacao da sua resposta se vai alterar ou nao
if [ $processo -eq 1 ]; then
#clear
/root/script/alterarsenha
fi
if [ $processo -eq 2 ]; then
exit
fi

----

Espero ter ajudado.
Bruno Lacet







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts