Linux Bash shell script

Linux Bash Shell Script로 사용자 관리 자동화하기

임베디드 친구 2025. 2. 11. 17:13
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

스크립트 실행 방법

  1. 위 스크립트를 create_user.sh라는 이름으로 저장합니다.
  2. 실행 권한을 부여합니다:
    chmod +x create_user.sh
  3. 스크립트를 실행합니다:
    ./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

스크립트 실행 방법

  1. 위 스크립트를 delete_user.sh라는 이름으로 저장합니다.
  2. 실행 권한을 부여합니다:
    chmod +x delete_user.sh
  3. 스크립트를 실행합니다:
    ./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

스크립트 실행 방법

  1. 위 스크립트를 list_users.sh라는 이름으로 저장합니다.
  2. 실행 권한을 부여합니다:
    chmod +x list_users.sh
  3. 스크립트를 실행합니다:
    ./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

스크립트 실행 방법

  1. 위 스크립트를 user_management.sh라는 이름으로 저장합니다.
  2. 실행 권한을 부여합니다:
    chmod +x user_management.sh
  3. 스크립트를 실행합니다:
    ./user_management.sh

4. 결론

Bash Shell Script를 사용하면 반복적인 사용자 관리 작업을 손쉽게 자동화할 수 있습니다. 이번 포스팅에서 제공한 예제들을 바탕으로 자신만의 사용자 관리 스크립트를 만들어 보세요. 이를 통해 시스템 관리 효율성을 크게 향상시킬 수 있을 것입니다.

반응형