728x90

 

/etc/passwd

/etc/passwd 파일은 리눅스 및 유닉스 계열 운영체제에서 사용자 계정정보를 저장하는 텍스트파일입니다. 각 사용자의 로그인 정보를 포함하고 있으며 시스템이 로그인 요청을 처리할 때 참고합니다.

 

 

파일 형식

이 파일은 콜론으로 구분된 여러 필드로 구성되어 있다. 각 줄을 하나의 사용자 계정을 나타냅니다.

username:password:UID:GID:comment:home_directory:shell

 

각 필드에 대한 설명

필드 설명
username 로그인 이름(root, user1)
password 암호정보(보통 x로 표시되고, 진짜 해시값은 /etc/shadow에 저장됨)
UID 사용자 ID(숫자, root는 보통 0)
GID 기본 그룹 ID (숫자, /etc/group 파일 참조)
comment 사요자 정보(이름, 설명 등 - GECOS 필드라고도 함)
home_directory 사용자의 홈 디렉토리 경로(ex: /home/user1)
shell 로그인 시 실행되는 shell( /bin/bash, /sbin/nologin)

 

예시

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
user1:x:1000:1000:홍길동:/home/user1:/bin/bash

 

주요 사항

  • 이 파일은 모든 사용자가 읽을 수 있다(644 권한)
  • password  필드는 보안을 위해 x로 대체되며, 실제 암호 해시값은 /etc/shadow에 저장됩니다.
  • UID가 0이면 슈퍼 유저(root) 권한을 가집니다.
  • UID가 1000 이상이면 일반 사용자 계정입니다.
  • 시스템 계정(ex. daemon, bin, nobody)은 로그인하지 못하게 보통 /usr/sbin/nologin 셸을 사용합니다.
  • /etc/passwd 파일 자체는 암호를 포함하지 않지만 여전히 조작될 경우 심각한 보안 위협이 됩니다.
  • 실수로 수정하지 않도록 vipw 명령어를 사용하여 안전하게 편집하여야 한다.

 

 

 

/etc/shadow

/etc/shadow 파일은 리눅스 및 유닉스 시스템에서 사용자 계정의 암호(비밀번호) 정보를 저장하는 보안파일입니다. 이 파일은 /etc/passwd 보다 더 민감한 정ㅂ모를 포함하므로 접근이 제한됩니다.

 

/etc/shadow 파일 개요

  • 목적 : 각 사용자 계정의 암호 해시값 및 만료 정보를 저장
  • 권한 : 보통 -rw-r-----, 소유자 root, 그룹 shadow
ls -l /etc/shadow
-rw-r----- 1 root shadow 1234 Jun  3 10:00 /etc/shadow

 

파일 형식

콜론으로 구분된 필드로 구성

 

username:password:last_change:min:max:warn:inactive:expire:reserved

 

필드 번호 필드명 설명
1 username  사용자 이름(ex. user1)
2 password 암호 해시값, 또는 계정 상태
3 last_change 마지막으로 비밀번호가 변경된 날짜(1970-01-01부터 경과한 일수)
4 min 비밀번호 변경 최소 일수(이전 후 최소 며칠 뒤에 변경 가능)
5 max 비밀번호 변경 최대 일수(이후 비밀번호 만료됨)
6 warn 만료 전 경고 시작일수
7 inactive 만료 후 비활성화되기까지의 유예기간
8 expire 계정 만료일(1970-01-01부터의 일수)
9 reserved 예약 필드(보통 비어 있음

 

예시

user1:$6$sdf9SdFj2K$1dUeJz...:19123:0:99999:7:::
daemon:*:19000:0:99999:7:::

 

password 필드의 포맷

$id$salt$hashed_password

 

구성 요소 설명
$id 사용된 해시 알고리즘을 나타내는 식별자
salt 해시 강화용 랜덤 문자열(해시값을 고유하게 만듦)
hashed_password 실제 비밀번호가 salt와 함께 해시된 값

 

알고리즘 식별자($id)

ID 알고리즘 설명
$1$ MD5 오래된 방식, 보안 취약
$2a$, $2b$, $2y$ Blowfish(bcrypt) 일부 시스템에서 사용
$5$ SHA-256 보안성 중간
$6$ SHA-512 리눅스에서 기본으로 권장. 보안성 높음
대부분의 현대 리눅스 배포판은 SHA-512($6$)를 기본으로 사용합니다.
$6$G7WvEtgL$XSnX0MZKmWR5fb7wgy...JELN9EPsqxv1h3ujA19nHDnI3A1

 

  • $6$ -> SHA-512 알고리즘
  • G7WvEtgL -> salt (8자리 이상, 시스템에 따라 다름)
  • XSnX0MZK... -> SHA-512 해시 결과

pwconv, pwunconv 명령어

pwconv, pwunconv는 리눅스에서 비밀번호 정보를 /etc/passwd와 /etc/shadow 사이에서 동기화하거나 변환하는데 사용되는 명령어입니다.

 

pwconv

  • /etc/passwd -> /etc/shadow로 비밀번호 정보를 이동
  • /etc/passwd에 저장된 암호필드를  x로 변경
  • /etc/shadow 파일을 생성하거나 갱신

 

pwunconv

  • /etc/shadow에 있던 암호 해시값을 /etc/passwd로 다시 이동
  • /etc/shadow 시스템 비활성화
  • Shadow password system을 비활성화

 

 

 

728x90

+ Recent posts