리눅스에서 사용자 계정 생성 및 초기 설정 자동화하기

리눅스 서버를 관리하다 보면 새로운 사용자 계정을 생성하고 설정해야 하는 경우가 자주 있습니다.
이러한 작업을 자동화하면 시간과 노력을 절약할 수 있습니다.
이번 포스팅에서는 리눅스에서 사용자 계정을 자동으로 생성하고, 기본 설정을 하는 스크립트를 작성해 보겠습니다.
이 스크립트를 통해 사용자 계정 생성과 초기 설정을 손쉽게 자동화할 수 있습니다.

서론

서버 관리자는 새로운 사용자가 필요할 때마다 계정을 생성하고 권한을 설정하는 작업을 반복하게 됩니다.
이러한 작업은 매우 중요하지만, 수동으로 하다 보면 실수할 수 있고 시간이 많이 걸릴 수 있습니다.
그래서 이번 포스팅에서는 사용자 계정을 자동으로 생성하고 필요한 설정을 한 번에 할 수 있는 스크립트를 소개하겠습니다.

본론

스크립트 작성하기

이 스크립트는 새로운 사용자 계정을 생성하고, 홈 디렉토리를 생성하며, 초기 설정을 수행하도록 설계되었습니다.
user_setup.sh라는 파일명으로 작성하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
 
# 새로운 사용자 계정 생성 스크립트
 
# 사용자 이름과 비밀번호 설정
USER_NAME=$1
USER_PASSWORD=$2
 
# 홈 디렉토리 설정
USER_HOME="/home/$USER_NAME"
 
# 사용자 계정 생성
sudo useradd --d $USER_HOME -/bin/bash $USER_NAME
 
# 사용자 비밀번호 설정
echo "$USER_NAME:$USER_PASSWORD" | sudo chpasswd
 
# 사용자 홈 디렉토리에 기본 설정 파일 복사
sudo cp /etc/skel/.bashrc $USER_HOME/
sudo cp /etc/skel/.profile $USER_HOME/
 
# 사용자에게 기본 권한 부여
sudo chown -R $USER_NAME:$USER_NAME $USER_HOME
 
# 사용자에게 sudo 권한 부여
sudo usermod -aG sudo $USER_NAME
 
# 결과 출력
if [ $? -eq 0 ]; then
  echo "[$(date +\%Y-\%m-\%d\ \%H:\%M:\%S)] 사용자 계정 생성 성공: $USER_NAME"
else
  echo "[$(date +\%Y-\%m-\%d\ \%H:\%M:\%S)] 사용자 계정 생성 실패: $USER_NAME"
fi
cs

스크립트 설명

  • 사용자 이름과 비밀번호 설정: 스크립트 실행 시 인자로 사용자 이름과 비밀번호를 받아 설정합니다.
  • 홈 디렉토리 설정: 새로 생성될 사용자의 홈 디렉토리를 설정합니다.
  • 사용자 계정 생성: useradd 명령어를 사용하여 새로운 사용자 계정을 생성합니다.
  • 사용자 비밀번호 설정: chpasswd 명령어를 사용하여 사용자 비밀번호를 설정합니다.
  • 기본 설정 파일 복사: /etc/skel 디렉토리에 있는 기본 설정 파일들을 사용자의 홈 디렉토리로 복사합니다.
  • 기본 권한 부여: 생성된 홈 디렉토리와 그 안의 파일들의 소유자를 새로 생성된 사용자로 설정합니다.
  • sudo 권한 부여: usermod 명령어를 사용하여 새 사용자에게 sudo 권한을 부여합니다.
  • 결과 출력: 계정 생성 결과를 출력합니다.

스크립트 실행 권한 부여하기

스크립트를 작성한 후에는 실행 권한을 부여해야 합니다.
다음 명령어를 사용하여 실행 권한을 부여합니다.


1
chmod +x /path/to/user_setup.sh
cs


결론

이렇게 하면 새로운 사용자 계정 생성과 초기 설정 작업을 자동화할 수 있습니다.
반복적인 작업을 자동화함으로써 관리자의 부담을 줄이고, 실수를 방지할 수 있습니다.
이번 포스팅에서 소개한 스크립트를 통해 리눅스 서버에서 사용자 계정 관리를 더욱 효율적으로 할 수 있기를 바랍니다.

댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위