1) 학습 요약표
학습 내용 | 설명 |
사용자 계정 관리 | useradd(-m, -G, -s, -u, -d), passwd(-e, -l, -u), usermod(-aG, -s, -d, -L), userdel(-r, -f)로 계정 생성, 수정, 삭제 |
그룹 관리 | groupadd(-g, -K)로 그룹 생성, groupdel로 삭제, usermod -aG로 그룹 추가 |
계정 정보 확인 | id, getent, /etc/passwd, /etc/group으로 UID/GID 및 그룹 확인 |
2) 이론 설명
(1) 사용자 계정 관리
기능 설명:
서버에서 사용자별 작업 환경을 분리하고 권한을 부여하기 위해 계정을 생성·관리한다. 이를 통해 홈 디렉토리, 권한, 로그인 쉘을 개별 설정하여 보안과 효율성을 높인다.
동작 원리:
- /etc/passwd, /etc/shadow, /etc/group 파일에 UID(사용자 ID), GID(기본 그룹 ID), 홈 디렉토리, 로그인 쉘 정보가 저장된다.
- 이 정보는 프로세스 실행과 파일 접근 권한에 직접적으로 반영된다.
주요 명령과 옵션:
useradd:
- -m : 홈 디렉토리 자동 생성
- -G : 보조 그룹 추가 지정
- -s : 로그인 쉘 지정 (기본은 /bin/bash)
- -u : UID 직접 지정 (NFS/NIS 환경 등 서버 간 계정 일관성 유지 필요 시)
- -d : 홈 디렉토리 경로 지정
passwd:
- -e : 비밀번호 만료 (최초 로그인 시 비밀번호 변경 강제)
- -l : 계정 잠금
- -u : 계정 잠금 해제
usermod:
- -aG : 기존 그룹 유지하며 새 그룹 추가
- -s : 로그인 쉘 변경
- -d : 홈 디렉토리 변경
- -L : 계정 잠금
userdel:
- -r : 홈 디렉토리와 메일 스풀 삭제
- -f : 강제 삭제 (로그인 중인 세션 포함)
예제:
sudo useradd -m -u 1201 -G developers -s /bin/bash devuser
sudo passwd devuser
sudo usermod -aG testers -d /srv/devhome devuser
sudo userdel -r -f devuser
설명:
- UID 1201 지정으로 NFS/NIS 환경에서 계정 일관성을 유지할 수 있다.
- 홈 디렉토리를 /srv/devhome으로 변경하고 testers 그룹에 추가한다.
- -f 옵션을 사용하면 로그인 중인 계정도 강제로 삭제된다.
확인 방법:
- id devuser : UID, GID, 그룹 확인
- grep devuser /etc/passwd : 홈 디렉토리 및 쉘 확인
- ls -ld /home/devuser : 홈 디렉토리 실제 생성 여부 확인
(2) 그룹 관리
기능 설명:
여러 사용자가 같은 프로젝트 디렉토리나 파일에 접근해야 할 때, 그룹을 생성하여 공통 권한을 부여한다. 그룹에 속한 사용자는 해당 그룹이 소유한 자원에 공동 접근이 가능하다.
주요 명령과 옵션:
groupadd:
- -g : 그룹 ID(GID) 직접 지정 (여러 서버에서 동일 GID 유지 시 사용, 일반적으로 생략)
groupdel:
- 그룹 삭제. 그룹에 남아있는 멤버가 없도록 사용자 정리 필요.
사용자 그룹 추가/제거:
- usermod -aG [group] [user] : 기존 그룹 유지한 채 새 그룹에 사용자 추가
- gpasswd -d [user] [group] : 특정 그룹에서 사용자 제거
예제:
sudo groupadd qa_team
sudo usermod -aG qa_team devuser
sudo gpasswd -d devuser qa_team
sudo groupdel qa_team
(3) 계정 정보 확인
기능 설명:
사용자의 UID, GID, 소속 그룹 정보를 확인하면 파일 접근 문제 해결과 권한 충돌 분석에 유용하다.
주요 도구:
1. id [username]:
- UID, GID, 소속 그룹을 한 번에 확인
id devuser
출력 예시:
uid=1001(devuser) gid=1001(devuser) groups=1001(devuser),1002(developers)
2. getent passwd [username]:
- 로컬 계정뿐 아니라 LDAP/NIS 계정 정보도 조회 가능
getent passwd devuser
출력 예시:
devuser:x:1001:1001::/home/devuser:/bin/bash
3. /etc/passwd, /etc/group 직접 확인:
- 그룹에 포함된 사용자 확인
cat /etc/group | grep developers
출력 예시:
developers:x:1002:devuser
3) 기본 실습 과제
1. 홈 디렉토리와 bash 쉘을 가진 user01 계정을 생성하고 비밀번호 설정 후 UID/GID 확인.
2. devops 그룹 생성 후 user01을 그룹에 추가.
3. 계정 잠금 후 확인, 계정과 홈 디렉토리 삭제.
4) 심화 실습 과제
1. 개발자 계정 그룹 구성과 확인: devteam 그룹을 생성하고 devA, devB, devC 계정을 각각 홈 디렉토리와 bash 쉘로 생성하고 그룹에 추가. 각 계정의 UID/GID와 그룹을 확인.
2. 비밀번호 만료 처리 : devA 계정의 비밀번호를 만료시켜 다음 로그인 시 변경되도록 설정.
3. 계정 및 그룹 정리 : devA, devB, devC 계정을 홈 디렉토리와 함께 삭제하고 devteam 그룹도 삭제.
/etc/passwd와 /etc/group에서 삭제 결과를 확인.
'리눅스 > 기초 학습' 카테고리의 다른 글
Day 5: 파일 검색, 백업 & 자원 확인 (1) | 2025.08.01 |
---|---|
Day 4: 권한 및 소유권 (파일/디렉토리 퍼미션 관리) (2) | 2025.07.30 |
Day 2: 텍스트 출력 & 필터링 (2) | 2025.07.21 |
Day 1.5: 리눅스에서 자주 쓰지만 초보자가 놓치기 쉬운 개념들 (3) | 2025.07.20 |
Day 1: 셸 기본 & 파일 조작 (2) | 2025.07.19 |