리눅스에서는 모든 사용자 정보가 텍스트 파일에 저장되어 있습니다.
그 중 핵심 파일이 바로 /etc/passwd
와 /etc/shadow
입니다.
1. /etc/passwd – 사용자 기본 정보
경로: /etc/passwd
이 파일은 시스템의 모든 사용자 계정을 정의합니다. 각 줄이 하나의 사용자 정보를 나타내며, 다음과 같은 형식으로 구성되어 있습니다:
username:x:UID:GID:comment:home_directory:shell
- 예시
john:x:1001:1001:John Doe:/home/john:/bin/bash
- username: 사용자 이름
- x: 패스워드 필드 (과거에는 여기에 암호가 저장되었지만, 보안상의 이유로 현재는 shadow 파일로 분리)
- UID: 사용자 ID
- GID: 그룹 ID
- comment: 사용자 설명 또는 전체 이름
- home_directory: 홈 디렉토리 경로
- shell: 로그인 시 사용할 기본 셸
2. /etc/shadow – 비밀번호 관련 정보
경로: /etc/shadow
사용자의 실제 암호는 /etc/shadow
파일에 저장되어 있으며, 루트 사용자만 읽을 수 있습니다.
이 파일은 다음과 같은 형식으로 구성됩니다:
username:password:last_change:min:max:warn:inactive:expire
- 예시
john:$6$Xk...QwE$:19345:0:99999:7:::
- username: 사용자 이름
- password: 해시된 비밀번호 (SHA-512 등)
- last_change: 마지막 비밀번호 변경일 (epoch 기준 날짜)
- min: 최소 변경 가능 일수
- max: 비밀번호 최대 유효 일수
- warn: 만료 경고 일수
- inactive: 비활성 계정 유지 기간
- expire: 계정 만료일
3. 왜 shadow 파일이 따로 있을까?
과거에는 /etc/passwd
파일에 암호가 저장되어 있었지만, 모든 사용자가 읽을 수 있는 구조였기 때문에 보안에 취약했습니다.
그래서 암호 정보를 별도로 보호할 수 있도록 /etc/shadow 파일이 도입되었고, x
표기로 암호가 이전되었음을 나타냅니다.
4. 권한 확인하기
ls -l /etc/passwd
-rw-r--r-- 1 root root 2345 Jun 20 14:10 /etc/passwd
ls -l /etc/shadow
-r-------- 1 root root 1240 Jun 20 14:10 /etc/shadow
/etc/shadow
파일은 루트만 읽을 수 있도록 제한되어 있습니다.
사용자 관리를 이해하는 첫걸음
리눅스 시스템의 사용자 정보를 관리하려면 /etc/passwd
와 /etc/shadow
의 구조를 이해하는 것이 중요합니다.
이를 통해 사용자 추가, 암호 정책, 보안 설정을 더 잘 다룰 수 있게 됩니다.
혹시 실수로 이 파일을 수정하게 된다면 시스템 로그인에 문제가 생길 수 있으니, 항상 백업하고 신중히 다루는 습관을 들이면 좋습니다.
'개발 > 리눅스' 카테고리의 다른 글
[Linux] Fail2ban으로 SSH 로그인 시도 차단하기 (1) | 2025.07.03 |
---|---|
[Linux] 리눅스에서 비밀번호 정책 설정하기 (0) | 2025.07.02 |
[Linux] ssh-keygen으로 SSH 키 인증 로그인 설정 (0) | 2025.06.30 |
[Linux] SSH 서버 설정과 보안 강화 (0) | 2025.06.29 |
[Linux] 방화벽 설정하기 (UFW, firewalld) (0) | 2025.06.28 |