리눅스 사용자 및 그룹 관리
리눅스 시스템에서는 다중 사용자 환경을 관리하기 위해 사용자와 그룹을 체계적으로 설정하고 운영합니다. 이번 포스팅에서는 리눅스에서 사용자와 그룹을 생성, 수정, 삭제하는 방법과, 실무에서 자주 사용되는 명령어 및 설정 방법을 자세히 알아보겠습니다.
1. 사용자(User)란?
사용자는 리눅스 시스템에 접근할 수 있는 개별 계정을 의미합니다. 리눅스 사용자 계정에는 다음과 같은 유형이 있습니다:
- 루트 사용자(root): 시스템의 최고 권한을 가진 관리자.
- 일반 사용자(regular user): 제한된 권한을 가진 계정.
- 시스템 사용자(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: 사용자 및 그룹 생성
- developer라는 그룹을 생성하세요.
- student 사용자를 생성하고, 홈 디렉토리를 /home/student로 지정하세요.
- student를 developer 그룹에 추가하세요.
실습 2: 사용자 정보 수정
- student 사용자의 기본 셸을 /bin/zsh로 변경하세요.
- student 사용자의 설명을 "Development User"로 수정하세요.
실습 3: 사용자 삭제
- 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에 대해 알아보겠습니다.
'Computer Science > RHCSA® REDHAT9' 카테고리의 다른 글
[RHCSA #10] Chapter 7: Permissions Management (파일 권한 관리) (0) | 2024.11.28 |
---|---|
[RHCSA #9] 이스케이프(escaping) 사용하기(Redhat 9) (0) | 2024.11.27 |
[RHCSA #7] Chapter 5: SSH 원격접속(Redhat 9) (0) | 2024.11.25 |
[RHCSA #6] Chapter4: 텍스트 파일 관리 (Redhat 9) (0) | 2024.11.24 |
[RHCSA #5] Chapter3: tar 정복하기 (Redhat 9) (0) | 2024.11.23 |