본문 바로가기
컴퓨터 & IT (Computer & IT)/Linux

[Linux] /etc/passwd, /etc/shadow, /etc/group

by Physics 2020. 6. 16.
728x90

1. /etc/passwd

  1) 사용자의 패스워드뿐만 아니라 기타 사용자에 대한 정보가 들어있는 파일
  2) 슈퍼유저만 수정할 수 있음.
  3) /etc/passwd의 구성 : 아래와 같이 7개의 필드로 구성이 된다  
    • 7개의 필드: <로그인명> : <암호> : <UID> : <GID> : <정보> : <홈 디렉토리> : <사용하는 쉘>
    • 각 필드는 “:”으로 구분된다.
    • 로그인명, UID, GID, 홈 디렉토리는 반드시 있어야하는 필드이다.  

※ Note 1: root 계정은 리눅스 시스템의 관리자이며 항상 UID 0이 할당 
※ Note 2: 리눅스 시스템은 실제 사용자가 아닌 다양한 기능에 관련된 사용자 계정(시스템 계정)들을 만든다. 
  - 시스템 계정이란? 시스템에서 구동되는 서비스들이 시스템 자원에 접근하는 권한을 얻기 위해서 사용하는 특별한 계정  
※ Note 3: /etc/passwd는 표준 텍스트 파일이지만, 파일이 손상될 경우, root 사용자까지 로그인을 할 수 없게 되는 상황이 일어날 수 있으므로, 리눅스 사용자 관리 유틸리티를 사용하는 것이 안전함.

ex) 

vim /etc/passwd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
...

 

필드 설명
로그인 명 로그인 시 사용자의 계정
암호 새도우 패스워드를 이용하며 /etc/shadow와 연결됨
“x”로 표시 
  - 비밀번호가 없다는 의미가 아님 
해당필드가 공란이면 패스워드 없이 로그인할 수 있음
 해당 필드에 임의의 문자를 삽입하면, 해당 유저는 로그인할 수 없음
  (일반적으로 *를 추가한다고 한다)
UID User ID (사용자번호)
리눅스에서 미리 지정된 사용자번호
UID의 숫자의 의미
  1) 0 : root user
  2) 1~ 100 : 시스템 관련 가상의 사용자와 예약된 사용자 
  3) 500 ~ : 일반적인 사용자
※ UID가 0이면 root 권한을 가지므로 설정 시 주의할 것
※ 리눅스에서는 시스템 계정을 위해서 500 이하의 UID를 유보해 둠
GID  Group ID
리눅스는 사용자이름/그룹이름으로 관리하기 보다는 사용자ID/그룹ID로 관리를 한다.
정보 일반적으로 이름이나 전화번호 등의 정보가 들어감
 사용자의 계정에 관련된 설명 텍스트 (주석 필드) 
홈 디렉토리 - 사용자가 로그인하면서 위치하게 되는 디렉토리
- 사용자가 사용할 수 있는 쉘을 지정하는 필드

 

 

 

2. /etc/shadow

   1) 사용자의 패스워드, 패스워드의 유효기간 설정, 패스워드 잠금 등의 기능을 해당 파일에서 제공한다. 
  - 사용자의 패스워드를 해시 알고리즘으로 암호화한 값으로 저장함
  - /etc/passwd
파일의 각 사용자들에 대한 암호 정보를 담고 있음

   2) /etc/shadow는 총 9개의 필드로 구성이 되어있다
      - <로그인명>:<암호화된 패스워드>:<패스워드를 최근 변경일자>:<①>:<②>:<③>

   ex)

vim /etc/shadow

...
daemon:*:17953:0:99999:7:::
bin:*:17953:0:99999:7:::
sys:*:17953:0:99999:7:::
sync:*:17953:0:99999:7:::
...

 

필드 설명
로그인명    - 로그인 시 사용자의 계정
암호    - 암호화된 패스워드
▪ 패스워드의 형식: $id$salt$hashed
  - $id:
암호화 알고리즘*
  - $salt:
암호화 해독을 어렵게 하기 위한 것
  - $hased:
실제 사용자의 패스워드의 해쉬값

* 암호화 알고리즘
1) $1$ : MD5
2) $2a$ : Blowish
3) $2y$ : Browish
4) $5$ : SHA-256
6) $6$ : SHA-512

패스워드 변경일자    - 패스워드의 최근 변경일자
   - 1970년 1월1일을 기준으로 변경한 날짜까지의 일수
남은수    - 패스워드를 변경할 수 있는 날짜까지의 남은 수
   - 패스워드 변경 후 최소 유지해야하는 일 수
   - 0이면 언제든지 변경가능
패스워드 유효기간    - 패스워드를 바꿔야만 하는 날까지 남은수
   - 해당 기간을 넘으면 패스워드를 변경해야 함
   - 999999면 안바꿔도 됨
경고날짜    - 패스워드가 만료되기 전에 경고하는 날 수
   - 유효기간이 끝난 후 계정의 접속을 거부할때까지의 시간
   - 계정의 접속이 거부된 후 지난 날짜
   - 해당 필드는 사용하지 않음

 

 

▣ /etc/group

   1) 시스템의 그룹에 관한 정보가 들어있음:    
    ▪ /etc/passwd에 기재되어있는 GID는 사용자의 주그룹을 의미하고, /etc/group은 사용자의 보조그룹에 대한 정보가 포함되어있음
   2) /etc/group
는 총 4개의 필드로 구성이 되어있다
      - <
그룹명>:<그룹 패스워드>:<GID>:<그룹에 포함된 계정 리스트

728x90

댓글