Bash 스크립트에서 사용자 생성

Bash 스크립트에서 사용자 생성

사용자를 자동으로 추가하는 bash 스크립트를 만들고 있습니다. 내 비밀번호에는 항상 패턴이 있으므로 이를 변수로 설정하고... (여기서 막히는 부분 - 암호화 -) 내가 찾은이 게시물그러나 이것은 -stdin내가 사용하고 싶지 않은 것에 대해 이야기합니다. 또한 비밀번호를 생략하면 비밀번호를 입력하라는 메시지가 표시됩니다. 그렇다면 사용자 이름의 비밀번호를 어떻게 자동으로 암호화합니까?

내 스크립트

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: $0 <user>"
else
  p=${1%.*}
  p=$(echo $p | tr -d 'aeiou' | openssl passwd) $1
  useradd -p $p $1
fi

편집: CentOS의 mkpasswd는 내가 링크한 게시물에서 언급한 대로 작동하지 않는 것 같습니다.

4.1.2(1)-releaseEDIT2: 중요한 경우 bash 버전은 입니다 .

답변1

useradd및 를 사용하여 chpasswd자동으로 사용자를 생성할 수 있습니다. 예를 들어

useradd -c "Bob Smith" -m bob
echo "bob:mypassword" | chpasswd

일반 텍스트 비밀번호를 스크립트에 표시하지 않으려면 다음 --encrypted플래그를 사용하세요.

echo "bob:encrypted_mypassword" | chpasswd --encrypted

답변2

나는 영감을 받아 이것을 사용하게되었습니다.이 게시물

#!/bin/bash
if [ $# -ne 1 ]
then
  echo "Usage: $0 <user>"
else
  u=${2%.*}
  u=${u//[aeiou]}
  echo "$2:$u" > .tmp
  useradd $2
  < .tmp chpasswd
fi

관련 정보