본문 바로가기
Computer Science/RHCSA® REDHAT9

[RHCSA #8] Chapter 6: 사용자 및 그룹 관리(Redhat 9)

by rnasterofmysea 2024. 11. 26.
반응형

리눅스 사용자 및 그룹 관리

리눅스 시스템에서는 다중 사용자 환경을 관리하기 위해 사용자와 그룹을 체계적으로 설정하고 운영합니다. 이번 포스팅에서는 리눅스에서 사용자와 그룹을 생성, 수정, 삭제하는 방법과, 실무에서 자주 사용되는 명령어 및 설정 방법을 자세히 알아보겠습니다.


1. 사용자(User)란?

사용자는 리눅스 시스템에 접근할 수 있는 개별 계정을 의미합니다. 리눅스 사용자 계정에는 다음과 같은 유형이 있습니다:

  1. 루트 사용자(root): 시스템의 최고 권한을 가진 관리자.
  2. 일반 사용자(regular user): 제한된 권한을 가진 계정.
  3. 시스템 사용자(system user): 데이터베이스나 웹 서버와 같은 서비스에서 사용하는 계정.

모든 사용자 정보는 /etc/passwd 파일에 저장됩니다.

/etc/passwd의 형식:

username:x:UID:GID:Comment:HomeDirectory:LoginShell
  • username: 사용자 이름
  • UID: 사용자 ID (0은 root 사용자, 1~999는 시스템 계정, 1000 이상은 일반 사용자)
  • GID: 그룹 ID
  • HomeDirectory: 홈 디렉토리 경로
  • LoginShell: 기본 셸 프로그램

2. 사용자 관리 명령어

2.1 사용자 생성

useradd 명령어를 사용하여 새 사용자를 생성합니다.

기본 명령어:

sudo useradd username

옵션:

  • -m: 사용자 홈 디렉토리 생성.
  • -s: 기본 셸 지정 (/bin/bash 등).
  • -d: 홈 디렉토리 경로 지정.
  • -c: 사용자 설명(Comment) 추가.

예제:

sudo useradd -m -s /bin/bash -d /home/student -c "Test User" student

결과:

  • /home/student 디렉토리가 생성됩니다.
  • student 사용자 계정이 생성됩니다.

2.2 비밀번호 설정

passwd 명령어를 사용하여 비밀번호를 설정합니다.

기본 명령어:

sudo passwd username

예제:

sudo passwd student

결과:

  • 비밀번호 입력 후, student 계정에 암호가 적용됩니다.

2.3 사용자 정보 수정

기존 사용자 계정의 정보를 수정하려면 usermod 명령어를 사용합니다.

기본 명령어:

sudo usermod [옵션] username

주요 옵션:

  • -s /bin/zsh: 기본 셸 변경.
  • -d /new/path: 홈 디렉토리 경로 변경.
  • -c "New Comment": 사용자 설명 변경.
  • -g groupname: 기본 그룹 변경.
  • -aG groupname: 추가 그룹에 사용자 추가.

예제:

sudo usermod -s /bin/zsh -aG developers student
  • student 사용자의 기본 셸을 /bin/zsh로 변경.
  • developers 그룹에 student를 추가.

2.4 사용자 삭제

사용자를 삭제하려면 userdel 명령어를 사용합니다.

기본 명령어:

sudo userdel username

홈 디렉토리까지 삭제하려면:

sudo userdel -r username

3. 그룹(Group) 관리

리눅스 그룹은 사용자 계정을 묶어서 파일 및 디렉토리의 접근 권한을 관리합니다. 모든 그룹 정보는 /etc/group 파일에 저장됩니다.

3.1 그룹 생성

groupadd 명령어를 사용하여 새 그룹을 생성합니다.

기본 명령어:

sudo groupadd groupname

예제:

sudo groupadd developers

3.2 사용자 그룹 추가

기존 사용자 계정을 특정 그룹에 추가하려면 usermod 명령어를 사용합니다.

기본 명령어:

sudo usermod -aG groupname username

예제:

sudo usermod -aG developers student
  • student 사용자를 developers 그룹에 추가합니다.

주의: -aG 옵션은 기존 그룹을 유지하면서 새 그룹에 추가합니다. 이를 생략하면 기존 그룹이 제거될 수 있습니다.


3.3 그룹 삭제

groupdel 명령어를 사용해 그룹을 삭제합니다.

기본 명령어:

sudo groupdel groupname

4. 사용자 및 그룹 정보 확인

4.1 사용자 정보 확인

  • id 명령어: 특정 사용자의 UID, GID, 그룹 정보 출력.
  • who 명령어: 현재 로그인된 사용자 확인.
  • w 명령어: 로그인 사용자와 실행 중인 프로세스 확인.

예제:

id student
who
w

4.2 그룹 정보 확인

  • groups username: 사용자가 속한 그룹 확인.
  • cat /etc/group: 모든 그룹 정보 출력.

예제:

groups student
cat /etc/group

5. 실습 과제

실습 1: 사용자 및 그룹 생성

  1. developer라는 그룹을 생성하세요.
  2. student 사용자를 생성하고, 홈 디렉토리를 /home/student로 지정하세요.
  3. student를 developer 그룹에 추가하세요.

실습 2: 사용자 정보 수정

  1. student 사용자의 기본 셸을 /bin/zsh로 변경하세요.
  2. student 사용자의 설명을 "Development User"로 수정하세요.

실습 3: 사용자 삭제

  1. student 사용자를 삭제하고, 홈 디렉토리도 제거하세요.

6. 사용자 및 그룹 보안 설정

6.1 암호 정책 설정

chage 명령어를 사용해 사용자 암호 만료 정책을 설정할 수 있습니다.

예제:

sudo chage -M 90 student  # 암호 90일 후 만료
sudo chage -l student     # 암호 만료 정보 확인

6.2 비활성 사용자 계정 잠금

usermod -L 명령어로 계정을 잠그고, usermod -U로 잠금을 해제합니다.

예제:

sudo usermod -L student  # 계정 잠금
sudo usermod -U student  # 계정 잠금 해제

7. 결론

리눅스에서 사용자와 그룹 관리는 시스템의 보안과 효율적인 자원 관리를 위한 기본적인 작업입니다. 위에서 다룬 명령어와 실습을 반복 연습하여 숙달하세요. 다음 포스팅에서는 파일 권한 관리와 ACL에 대해 알아보겠습니다.

 

반응형