Linux

密碼修改腳本

  • November 14, 2018

我有一個文件,其中包含格式為 user:password 的使用者名和加密密碼(openssl passwd)。

現在我想每週使用一次 Cronjob 更改此使用者的密碼。在Janos

的幫助下,我製作了一個腳本,將密碼更改為 $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

引用自:https://unix.stackexchange.com/questions/335358