모든 기존 사용자에게 무작위 비밀번호 할당

모든 기존 사용자에게 무작위 비밀번호 할당

/etc/passwd 파일에서 사용자(첫 번째 열)를 파악하고 그들에게 암호를 할당하고 싶습니다. 기본 시스템 계정이 아닌 사용자 계정에 대해서만 이 작업을 수행하고 싶습니다. 지금까지 간단한 bash 스크립트가 있습니다.

#!/bin/bash
touch /usertempfile
grep "/home" /etc/passwd |grep -v "/bin/false"|grep -v "/sbin/nologin"|grep -v $USER |awk -F":" '{print $1}' >> /userstempfile
for i in $(cat /usertempfile); do
    echo -e "password/npassword" |passwd $i
done
rm -rf /usertempfile

스크립트는 /etc/passwd 파일에서 기본이 아닌 시스템 계정의 사용자를 추출할 수 있지만 파일에 있는 사용자의 비밀번호를 변경할 수는 없습니다. 내가 뭘 잘못했나요?

답변1

내 스크립트에서 이것을 사용하면 chpasswd나에게 잘 작동합니다.

echo "$USERNAME:$NEWPASSWORD" | chpasswd

추신: 루트가 아닌 사용자가 sudo이전에 사용하기 에 적합합니다.chpasswd

echo "$USERNAME:$NEWPASSWORD" | sudo chpasswd

관련 정보