Bash 스크립트를 통해 사용자 입력을 자동화하시겠습니까? [복사]

Bash 스크립트를 통해 사용자 입력을 자동화하시겠습니까? [복사]

사용자를 생성하고 비밀번호를 설정하는 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.

최신 버전에는 이제 useraddRed 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"

관련 정보