у меня есть файл, который содержит имена пользователей и зашифрованные пароли (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.
У кого-нибудь есть идея?
Вы можете сохранить сгенерированный пароль в переменной и записать его в два файла:
Например:
# 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