修改密码脚本

修改密码脚本

我有一个文件,其中包含用户名和加密密码(openssl passwd),格式为 user:password。
现在我想每周使用 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 密码。

有人有想法吗?

旧帖子

答案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

相关内容