Сценарий смены пароля

у меня есть файл, который содержит имена пользователей и зашифрованные пароли (openssl passwd) в формате пользователь: пароль.
Теперь я хочу менять пароль этого пользователя с помощью Cronjob раз в неделю.
С помощью Яноша я создал сценарий, который изменяет пароль на значение, сгенерированное $ RANDOM, и сохраняет зашифрованный пароль в pw.txt, а незашифрованный - в 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

. мои проблемы:
1.) При этом у меня есть просто случайное сгенерированное значение для каждого пользователя, но мне нужно случайное значение для каждого пользователя (каждая строка в файле).
2.) Было бы хорошо, если бы я мог получить имя пользователя и пароль в открытом виде для каждого пользователя в randompw.txt в настоящее время, у меня там только один пароль $ RANDOM.

У кого-нибудь есть идея?

Старый пост

0
14.11.2018, 21:12
1 ответ

Вы можете сохранить сгенерированный пароль в переменной и записать его в два файла:

  • Один файл в открытом виде
  • Один файл хеширован

Например:

# 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
1
28.01.2020, 02:46

Теги

Похожие вопросы