사용자 계정 만들기 스크립트
필요한 정보
- 사용자 계정 ID와 패스워드
- 사용자 계정 생성 명령어: useradd
- 패스워드 설정 명령어: passwd
프로세스
- 사용자 계정과 패스워드를 입력받는다
- 입력 정보가 없으면 에러 메시지를 보여주고 셸 스크립트를 종료한다
- 여러 명의 사용자가 계정을 생성할 경우에는 for문을 이용한다
- 생성하고자 하는 사용자 계정이 있는지 확인한다
- 사용자 계정이 없으면 사용자 계정을 생성하고, 패스워드를 설정한다
- 만일 사용자 계정이 있으면 계정이 있다고 메시지를 보여준다
#!/bin/bash
# 스크립트를 관리자 권한으로 실행해야 합니다.
if [ "$EUID" -ne 0 ]; then
echo "이 스크립트는 관리자 권한이 필요합니다."
exit 1
fi
# 인수가 두 개 이상인지 확인합니다.
if [[ -n $1 ]] && [[ -n $2 ]]
then
UserList=($1) #공백으로 구분된 문자열을 배열로 변환
Passwords=($2)
# 사용자 수와 비밀번호 수가 일치하는지 확인합니다.
if [ ${#UserList[@]} -ne ${#Passwords[@]} ]; then
echo "사용자 목록과 비밀번호 목록의 길이가 일치하지 않습니다."
exit 1
fi
for (( i=0; i<${#UserList[@]}; i++ ))
do
if id "${UserList[$i]}" &>/dev/null; then
echo "사용자 ${UserList[$i]}는 이미 존재합니다."
else
useradd "${UserList[$i]}"
echo "${UserList[$i]}:${Passwords[$i]}" | chpasswd
echo "사용자 ${UserList[$i]}가 성공적으로 추가되었습니다."
fi
done
else
echo -e '사용자 ID와 비밀번호를 입력하세요. \n사용법: ./adduser-script.sh "user01 user02" "password1 password2"'
fi
실행 권한 부여하고 관리자 권한으로 실행
chmod +x adduser-script.sh
sudo ./adduser-script.sh "user01 user02" "password1 password2"


다수의 사용자 계정을 생성하는 스크립트
ssh를 활용하여 다른 서버에 사용자 계정을 생성할 수 있다. 여러 서버에 사용자를 생성하고 패스워드를 설정해보자.
#!/bin/bash
for server in "host01 host02 host03"
do
echo $server
ssh root@server "useradd $1"
ssh root@server "echo $2 |passwd $1 --stdin"
done
출처: 처음 배우는 셸 스크립트

'Linux' 카테고리의 다른 글
[Linux] SSH Key를 여러 서버에 복사하는 스크립트 (0) | 2024.05.22 |
---|---|
[Linux] 리눅스 root 초기 비밀번호 설정, 비밀번호 모를 때 (0) | 2024.05.22 |
[Linux] grep (0) | 2024.05.21 |
[Linux] 셸 스크립트 연산자 실습 (비교 연산자, 논리 연산자) (0) | 2024.05.21 |
[Linux] 셸 스크립트 for, while 기초 다지기 (0) | 2024.05.21 |