Linux Bash shell script

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

임베디드 친구 2025. 2. 11. 17:13
728x90
반응형

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

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

반응형