![Bash를 사용하여 비밀번호로 사용자 생성 [닫기]](https://linux55.com/image/105477/Bash%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A1%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%83%9D%EC%84%B1%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
username=$1
pass=$2
shift
shift
fname=$*
username=$(useradd -m -s /bin/bash -c "$fname" $username)
newpass=$(openssl passwd -1 -salt -stdin $pass)
그래서 이것이 작동합니다. 로그인하려고 할 때 로그인할 수 없다는 것입니다. 내 인생에서 나는 무엇이 잘못되었는지 이해하지 못합니다. 다음 구문을 사용해 보았습니다.
newPass=($username:$pass | chpasswd -c SHA512)
답변1
꼭 이 작업을 수행해야 하는 경우 작동하는 스크립트는 다음과 같습니다.
#!/bin/bash
#
username="$1"
pass="$2"
shift 2
fname="$*"
useradd -m -s /bin/bash -c "$fname" "$username"
echo "$username:$pass" | chpasswd
여기서 일반 텍스트 비밀번호는 $pass
명령에 의해 암호화됩니다. 기본적으로 PAM을 사용하여 암호화를 수행하므로 대상 시스템에 "가장 적합"합니다./etc/shadow
chpasswd