728x90
반응형
Linux 시스템에서는 사용자를 생성하거나 삭제하고, 권한을 관리하는 작업이 자주 필요합니다. 이러한 작업을 수동으로 처리하기보다는 Bash Shell Script를 이용해 자동화하면 관리 효율성을 높일 수 있습니다. 이번 포스팅에서는 사용자 관리 자동화를 위한 Bash 스크립트를 작성하는 방법을 소개합니다.
1. 사용자 관리 기본 명령어
Linux에서 사용자 관리를 위한 기본 명령어는 다음과 같습니다:
adduser
또는useradd
: 새로운 사용자 생성passwd
: 사용자 비밀번호 설정deluser
또는userdel
: 사용자 삭제usermod
: 사용자 정보 수정
이 명령어들을 기반으로 스크립트를 작성해보겠습니다.
2. Bash 스크립트를 이용한 사용자 관리
(1) 사용자 생성 자동화 스크립트
아래는 새 사용자를 생성하고 초기 비밀번호를 설정하는 간단한 스크립트입니다:
#!/bin/bash
# 사용자 생성 스크립트
# 사용자 이름과 초기 비밀번호 입력
read -p "생성할 사용자 이름을 입력하세요: " username
read -s -p "초기 비밀번호를 입력하세요: " password
echo
# 사용자 생성 및 비밀번호 설정
echo "사용자를 생성 중입니다: $username"
sudo useradd -m $username
if [ $? -eq 0 ]; then
echo "$username:$password" | sudo chpasswd
echo "사용자 $username이 성공적으로 생성되었습니다."
else
echo "사용자 생성에 실패했습니다."
exit 1
fi
스크립트 실행 방법
- 위 스크립트를
create_user.sh
라는 이름으로 저장합니다. - 실행 권한을 부여합니다:
chmod +x create_user.sh
- 스크립트를 실행합니다:
./create_user.sh
(2) 사용자 삭제 자동화 스크립트
사용자를 삭제하고 해당 사용자의 홈 디렉터리를 제거하는 스크립트는 다음과 같습니다:
#!/bin/bash
# 사용자 삭제 스크립트
# 삭제할 사용자 이름 입력
read -p "삭제할 사용자 이름을 입력하세요: " username
# 사용자 삭제 및 홈 디렉터리 제거
echo "사용자를 삭제 중입니다: $username"
sudo userdel -r $username
if [ $? -eq 0 ]; then
echo "사용자 $username이 성공적으로 삭제되었습니다."
else
echo "사용자 삭제에 실패했습니다."
exit 1
fi
스크립트 실행 방법
- 위 스크립트를
delete_user.sh
라는 이름으로 저장합니다. - 실행 권한을 부여합니다:
chmod +x delete_user.sh
- 스크립트를 실행합니다:
./delete_user.sh
(3) 사용자 목록 확인 및 저장 스크립트
현재 시스템에 등록된 사용자 목록을 확인하고 파일로 저장하는 스크립트는 다음과 같습니다:
#!/bin/bash
# 사용자 목록 확인 및 저장 스크립트
output_file="user_list_$(date +%Y%m%d).txt"
# 사용자 목록 출력 및 저장
cut -d: -f1 /etc/passwd > $output_file
echo "사용자 목록이 $output_file에 저장되었습니다."
# 저장된 파일 내용 확인
echo "저장된 사용자 목록:"
cat $output_file
스크립트 실행 방법
- 위 스크립트를
list_users.sh
라는 이름으로 저장합니다. - 실행 권한을 부여합니다:
chmod +x list_users.sh
- 스크립트를 실행합니다:
./list_users.sh
3. 사용자 관리 자동화 스크립트 통합
위의 기능들을 하나의 스크립트로 통합하여 사용자 생성, 삭제, 목록 확인을 선택적으로 실행할 수 있도록 작성할 수도 있습니다:
#!/bin/bash
# 사용자 관리 통합 스크립트
function create_user() {
read -p "생성할 사용자 이름을 입력하세요: " username
read -s -p "초기 비밀번호를 입력하세요: " password
echo
sudo useradd -m $username
echo "$username:$password" | sudo chpasswd
echo "사용자 $username이 생성되었습니다."
}
function delete_user() {
read -p "삭제할 사용자 이름을 입력하세요: " username
sudo userdel -r $username
echo "사용자 $username이 삭제되었습니다."
}
function list_users() {
cut -d: -f1 /etc/passwd
}
# 메뉴 출력
echo "사용자 관리 메뉴"
echo "1. 사용자 생성"
echo "2. 사용자 삭제"
echo "3. 사용자 목록 확인"
echo "4. 종료"
# 사용자 선택 입력
read -p "실행할 작업 번호를 선택하세요: " choice
case $choice in
1)
create_user
;;
2)
delete_user
;;
3)
list_users
;;
4)
echo "종료합니다."
exit 0
;;
*)
echo "잘못된 선택입니다."
exit 1
;;
esac
스크립트 실행 방법
- 위 스크립트를
user_management.sh
라는 이름으로 저장합니다. - 실행 권한을 부여합니다:
chmod +x user_management.sh
- 스크립트를 실행합니다:
./user_management.sh
4. 결론
Bash Shell Script를 사용하면 반복적인 사용자 관리 작업을 손쉽게 자동화할 수 있습니다. 이번 포스팅에서 제공한 예제들을 바탕으로 자신만의 사용자 관리 스크립트를 만들어 보세요. 이를 통해 시스템 관리 효율성을 크게 향상시킬 수 있을 것입니다.
반응형
'Linux Bash shell script' 카테고리의 다른 글
Shell Script로 웹 크롤링(Web Crawling) 데이터 정리하기 (0) | 2025.02.13 |
---|---|
Bash Shell Script - CSV 파일 처리하기 (0) | 2025.02.12 |
Bash Shell Script 서버 상태 모니터링 (0) | 2025.02.10 |
Bash Shell Script로 반복 작업 자동화하기 (0) | 2025.02.09 |
Bash Script에서 `curl`과 `jq` 사용법 [ 외부 프로그램 활용하기 ] (0) | 2025.02.08 |