![사용자를 추가하는 스크립트는 사용자를 추가하지만 로그인할 수 없습니다.](https://linux55.com/image/163129/%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EC%A7%80%EB%A7%8C%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
파일에서 사용자를 추가하는 스크립트가 있습니다. 내가 알 수 있는 한, 사용자는 정상적으로 추가되지만 로그인을 시도할 때 스크립트에서 제공한 비밀번호가 작동하지 않습니다. 이것이 정상적인지 확실하지 않지만 /etc/shadow 파일에도 일반 텍스트로 올바른 비밀번호가 표시됩니다. 섀도우 파일에는 해시만 표시되어야 한다고 생각했나요?
이것은 내 스크립트 코드입니다.
#/bin/bash
file="/Scripts/FormattedFile.txt"
while IFS=: read -r f1 f2 f3 f4
do
validID=$( echo "$f3" | cut -b 4,5,6,7,8,9 )
comment="${f1} ${f2}"
useradd -m -p "$f3" -u "$validID" -c "$comment" "$f1"
echo "Added user $f1."
done < "$file"
결과적으로 사용자는 올바른 사용자 이름, ID 및 홈 디렉터리를 가지고 있지만 로그인할 수 없습니다. 스크립트가 파일을 올바르게 읽고 있으며 파일에서 추출된 필드가 정확하다는 것을 알고 있습니다. 필드 3은 더 긴 9자리 문자열에서 가져온 6자리 숫자입니다.
각 레코드의 형식은 다음과 같습니다.
firstname:lastname:H00123456:[email protected]
레코드는 줄 바꿈으로 구분됩니다.
답변1
에 따르면 useradd --help
:
-p, --password PASSWORD encrypted password of the new account
그래서 당신이 해야 할 일은 통과하는 것입니다암호화됨비밀번호:
-p $(openssl passwd "the_password")