user:password 형식의 사용자 이름과 암호화된 비밀번호(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 비밀번호가 하나만 있습니다.
누구든지 어떤 아이디어가 있습니까?
답변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