리눅스 사용자 관리
IT 위키
더 많은 작업
리눅스에서 사용자 계정과 그룹을 만들고, 바꾸고, 지우는 일과 그 정보가 저장되는 파일을 정리한 문서이다.
| 파일 | 내용 | 권한(Rocky 8 기본) |
|---|---|---|
| /etc/passwd | 사용자 계정 정보 | 644 |
| /etc/shadow | 암호화된 비밀번호와 비밀번호 만료 정보 | 000 (root만 접근) |
| /etc/group | 그룹 정보 | 644 |
| /etc/gshadow | 그룹 비밀번호 정보 | 000 |
| /etc/login.defs | 계정 생성 시 기본 정책 (UID 범위, 비밀번호 만료 기본값, 홈 디렉터리 생성 여부 등) | 644 |
| /etc/default/useradd | useradd의 기본값 (홈 기준 경로, 셸, skel 경로 등) | 644 |
| /etc/skel/ | 새 사용자 홈 디렉터리에 복사될 기본 파일 (.bashrc, .bash_profile 등) | - |
콜론(:)으로 구분된 7개 필드로 이루어진다.
사용자명:비밀번호:UID:GID:설명(GECOS):홈 디렉터리:로그인 셸 ihduser:x:1000:1000:IHD User:/home/ihduser:/bin/bash
- 비밀번호 자리의 x는 실제 비밀번호가 /etc/shadow에 있다는 뜻이다.
- UID 0은 root, 1~999는 시스템 계정, 1000 이상은 일반 사용자이다. (Rocky 8 login.defs의 UID_MIN 1000 기준)
- 로그인을 막으려면 셸을 /sbin/nologin 또는 /bin/false로 둔다.
콜론으로 구분된 9개 필드로 이루어진다.
사용자명:암호화된 비밀번호:최종 변경일:최소 사용일:최대 사용일:경고일:비활성일:만료일:예약 ihduser:$6$...:19800:0:99999:7:::
- 최종 변경일과 만료일은 1970년 1월 1일부터 지난 일 수로 저장된다.
- 비밀번호가 $6$로 시작하면 SHA-512, $5$는 SHA-256, $1$은 MD5 방식이다.
- 비밀번호 앞에 !가 붙으면 잠긴 계정이다. (passwd -l, usermod -L)
그룹명:비밀번호:GID:구성원 목록 wheel:x:10:ihduser,admin
| 명령어 | 용도 | 자주 쓰는 옵션 |
|---|---|---|
| useradd | 사용자 생성 | -u UID, -g 기본 그룹, -G 보조 그룹, -d 홈, -m 홈 생성, -s 셸, -c 설명, -e 만료일, -f 비활성일, -D 기본값 확인·변경 |
| usermod | 사용자 정보 변경 | -l 이름 변경, -G 보조 그룹 지정, -aG 보조 그룹 추가, -L 잠금, -U 잠금 해제, -d -m 홈 이동 |
| userdel | 사용자 삭제 | -r 홈 디렉터리와 메일 스풀까지 삭제 |
| passwd | 비밀번호 설정 | -l 잠금, -u 해제, -d 비밀번호 삭제, -e 즉시 만료, -S 상태, --stdin 표준 입력으로 설정(Rocky 8) |
| chage | 비밀번호 만료 정책 | -l 확인, -m 최소일, -M 최대일, -W 경고일, -I 비활성일, -E 만료일, -d 0 다음 로그인 때 변경 강제 |
| chsh | 로그인 셸 변경 | -s 셸, -l 사용 가능 셸 목록 |
| chfn | GECOS(설명) 정보 변경 | |
| newusers | 파일로 여러 사용자 일괄 생성 | |
| pwck | /etc/passwd·shadow 무결성 검사 | |
| pwconv | /etc/passwd의 비밀번호를 /etc/shadow로 옮김 |
# UID 1500, 보조 그룹 wheel, 셸 bash로 사용자 생성 # useradd -u 1500 -G wheel -s /bin/bash kaituser # passwd kaituser # useradd 기본값 확인 # useradd -D # 기존 보조 그룹을 유지하면서 developers 그룹 추가 # usermod -aG developers kaituser # 비밀번호 최대 사용일 90일, 만료 7일 전 경고 # chage -M 90 -W 7 kaituser # chage -l kaituser # 다음 로그인 때 비밀번호 변경 강제 # chage -d 0 kaituser # 홈 디렉터리까지 삭제 # userdel -r kaituser
- /etc/passwd 7개 필드, /etc/shadow 9개 필드의 순서와 의미
- usermod -G는 보조 그룹을 덮어쓰고, -aG는 추가한다.
- chage 옵션과 /etc/shadow 필드의 대응 (-m 최소, -M 최대, -W 경고, -I 비활성, -E 만료)
- userdel -r, useradd -D, /etc/skel의 역할