Script de alteração de senha

0

Estou tendo um arquivo, que contém nomes de usuário e senhas criptografadas (openssl passwd) no formato usuário: senha.
Agora eu quero mudar a senha deste usuário com um Cronjob uma vez por semana.
Com a ajuda de Janos , criei um Script, que altera a senha para um valor gerado por $ RANDOM e salva senha criptografada em pw.txt e não criptografada em randompw.txt

r=$RANDOM
cut -d: -f1 pw.txt | while read -r user; do
    echo "$user:$(openssl passwd $r)"
done > newpw.txt
mv newpw.txt pw.txt
echo $r > randompw.txt

Então, meus problemas são:
1.) Com isso, eu só tenho um valor aleatório gerado para cada usuário, mas eu quero um valor aleatório para cada usuário (cada linha no arquivo).
2.) Seria bom, se eu pudesse obter o nome de usuário e a senha em texto puro de cada usuário em randompw.txt atualmente, eu só tenho uma senha $ RANDOM lá.

Alguém tem uma ideia?

Postagem antiga

    
por Manu_H 06.01.2017 / 13:54

1 resposta

1

Você pode salvar a senha gerada em uma variável e gravá-la em dois arquivos:

  • Um arquivo em claro
  • Um arquivo hash

Por exemplo:

# initialize (truncate) output files
> clear.txt
> hashed.txt

cut -d: -f1 pw.txt | while read -r user; do        
    # generate a hash from a random number
    hash=$(openssl passwd $RANDOM)

    # use the first 8 letters of the hash as the password
    pass=${hash:0:8}

    # write password in clear formats to one file, and hashed in another
    echo "$user:$pass" >> clear.txt
    echo "$user:$(openssl passwd $pass)" >> hashed.txt
done
    
por 06.01.2017 / 14:04