사용자를 생성하고 비밀번호를 설정하는 bash 스크립트를 만들고 있습니다. "passwd user" 명령을 실행하면 사용자에게 비밀번호를 묻고 스크립트가 중지됩니다.
사용자 개입 없이 사용자 입력을 완료할 수 있는 방법이 있습니까?
#!/bin/bash
yum -y update
adduser test-user
passwd test-user
"Password here?"
답변1
이것은정말 나쁜 생각이야, 그러나 표준 입력으로 비밀번호를 전달할 수 있습니다.
passwd --stdin test-user <<< "Password here?"
답변2
방법 #1 - passwd 사용
스크립트를 통해 다음과 같은 작업을 수행할 수 있습니다.
echo -n "$passwd" | passwd "$uname" --stdin
여기서 설정하려는 비밀번호는 $passwd
이고 비밀번호를 설정하려는 사용자는 입니다 $uname
.
방법 #2 - useradd 사용
useradd
다음 주소로 직접 제공 할 수도 있습니다 .
useradd -n -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"
노트:yum
예제에 명령이 표시되어 있으므로 방법 #2에서는 Red Hat 기반 배포판(예: CentOS 또는 RHEL)을 사용하고 있다고 가정합니다 . -n
예를 들어 스위치는 이전 버전에 있습니다 useradd
.
-n A group having the same name as the user being added to the system
will be created by default. This option will turn off this
Red Hat Linux specific behavior. When this option is used, users by
default will be placed in whatever group is specified in
/etc/default/useradd. If no default group is defined, group 1 will be
used.
최신 버전에는 이제 useradd
Red Hat 배포판과 Red Hat이 아닌 배포판 모두에서 이 옵션이 있습니다.
-N, --no-user-group
Do not create a group with the same name as the user, but add the
user to the group specified by the -g option or by the GROUP
variable in /etc/default/useradd.
따라서 이 명령을 다른 배포판과 함께 사용할 수 있습니다.
useradd -N -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"