[Linux] /etc/passwd, /etc/shadow 파일 이해하기

리눅스에서는 모든 사용자 정보가 텍스트 파일에 저장되어 있습니다.
그 중 핵심 파일이 바로 /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의 구조를 이해하는 것이 중요합니다.
이를 통해 사용자 추가, 암호 정책, 보안 설정을 더 잘 다룰 수 있게 됩니다.

혹시 실수로 이 파일을 수정하게 된다면 시스템 로그인에 문제가 생길 수 있으니, 항상 백업하고 신중히 다루는 습관을 들이면 좋습니다.