Bash를 사용하여 비밀번호로 사용자 생성 [닫기]

Bash를 사용하여 비밀번호로 사용자 생성 [닫기]
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/shadowchpasswd

관련 정보