서버를 준비하는 BASH 스크립트의 일부로 새 시스템에 사용자 세트를 추가해야 합니다. 비대화식으로 사용자를 추가하고, 홈 디렉토리를 생성하고, 그룹을 설정하고, 기본 비밀번호를 입력하는 방법은 무엇입니까?
예를 들어, 다음 사용자를 추가해야 한다면 어떻게 해야 합니까?
user: node
password: spoon
group: ultraMegaPermissions
user:serve
password: spoot
group: sortaNotMega
user:watcher
password: spoogle
group: notMega
답변1
이것은 오래된 질문이지만 궁금합니다. 다른 사람들은 이 명령을 고려할 수도 있습니다 newusers
. 이는 제가 사용하고 있는 RHEL5.5 시스템과 Ubuntu 12.04 시스템 모두에 존재하므로 대부분의 배포판 저장소에서 사용할 수 있을 것으로 추측됩니다.
에서 man newusers
:
newusers 명령은 사용자 이름과 일반 텍스트 비밀번호 쌍의 파일을 읽고 이 정보를 사용하여 기존 사용자 세트를 업데이트하거나 새 사용자를 생성합니다. 각 행의 형식은 아래 설명된 예외를 제외하고 표준 암호 파일(passwd(5) 참조)과 동일합니다.
답변2
useradd
적어도 리눅스에서는요.
사용crypt(3)
암호화된 비밀번호를 생성한 후 각 비밀번호에 대해 다음을 수행하십시오.
useradd -m -g [group] -p [crypt output] [user]
-m
홈 디렉터리를 만듭니다. -g
사용자의 초기 로그인 그룹을 설정합니다. -p
반환된 암호화 비밀번호를 설정합니다 crypt(3)
(사용자 생성 시 프로세스를 나열하는 사용자에게 암호화 비밀번호가 표시되므로 이 옵션은 적합하지 않을 수 있다는 점에 유의해야 합니다).
사용하고 싶은 다른 옵션도 있습니다(적어도 추측 -s
). 이에 대해 읽어보세요 man 8 useradd
.
답변3
사용자 비밀번호를 수동으로 입력해야 하는 경우:
echo -n "Enter $MY_USER password: "
read -sa MY_PASS
echo ${MY_USER}:${MY_PASS}::::/home/${MY_USER}:${DEFAULT_SHELL} | newusers
완전히 비대화형이어야 한다면 일반 텍스트 비밀번호($MY_PASS)를 사용하여 마지막 명령을 실행하세요. 이는 일반적으로 좋은 생각이 아닙니다.
답변4
newuser 명령이 서버에 존재하지 않는 경우.
passwd 명령의 도움을 사용할 수 있습니다.
echo "new_passwd" | passwd --stdin new_user