관리 메뉴

FU11M00N

[Linux] 리눅스 계정 파일 /etc/passwd vs /etc/shadow 본문

Linux

[Linux] 리눅스 계정 파일 /etc/passwd vs /etc/shadow

호IT 2020. 9. 6. 22:22

리눅스 구조를 공부 해봤다면 /etc/passwd 와 /etc/shadow 파일은 많이 들어 봤을겁니다.

 

1. /etc/passwd

1. 리눅스 시스템에 로그인을 하면 사용자 계정들이 /etc/passwd 파일에 저장됩니다.

2. 이 파일은 다른 유틸리티에서도 참조하기 때문에 모든 계정들에게 읽기 권한이 주어져 있습니다. 

ex) 'ls' 명령어를 입력했을떄 사용자 UID와 이름을 매칭하기 위함 입니다.

3. 다만 이 파일 수정은 root만 가능합니다.

 

사진 1-1

 

/etc/passwd 파일의 내용입니다.

 

/etc/passwd 필드 내용

ex) root:x:0:0:root:/root:/bin/bash

         1:2:3:4 5 :     6

 

1. 계정 이름 : 사용자,시스템이 사용하는 이름입니다.

 

2. 패스워드 : x로 되어 있을 경우 /etc/shadow 파일에 암호화 되어 저장됩니다.


3. 사용자ID (UID) : UID 정보입니다. ex) root는 0


4. 그룹ID (GID) : GID 정보입니다. 


5. Description : 계정에 대한 설명이 기록 되어져 있습니다.


6. 홈 디렉터리 : 해당 계정의 홈 디렉토리 정보입니다.


7.  : 사용자 계정에서 사용되는 쉘을 나타냅니다.

 

2. /etc/shadow

/etc/shadow 파일은 계정의 패스워드 정보와 계정의 만료기간, 비밀번호 변경 일자 등등 패스워드 관리에

필요한 정보가 담겨져 있습니다.


이 파일은 /etc/passwd와 다르게 다른 사용자들은 이 파일을 읽기(read) 를 할수 있는 권한 조차도 없습니다.


/etc/passwd 파일에 그냥 패스워드를 암호화해서 넣어서 /etc/passwd 파일을 읽기(read) 권한을 없애면 될것같지만.
아까도 말했듯 /etc/passwd 파일은 다른 명령어들이 사용자명의 UID를 참조를 해야할때가 생기기 때문에,  

 

보안상 "shadow" 라는 파일을 새로 만들어서 패스워드의 해쉬값만 보관하는 방법을 사용합니다.

사진 1-2

/etc/shadow 파일의 내용입니다.

 

ex) test5:$1$ctVqNwaW$zVoDKU2Guu/lDG4n7kTmS. : 18511:1: 90:7:::

       1   :                                                           2:        3:4:    5: 6: 7: 8: 9

 

1. 계정 이름 : 사용자,시스템이 사용하는 이름입니다.


2. 패스워드 : 세부적인 필드가 또 존재합니다. (아래에 설명 포함)


3. 패스워드 파일 최종 수정일 : 패스워드 파일의 최종 수정일을 나타냅니다.

 

4. 패스워드 변경 최소일  : 패스워드 변경의 최소 날짜를 나타냅니다.


5. 패스워드 변경 최대일 : 패스워드 변경일의 최대 날짜를 나타냅니다.


6. 패스워드 만료 경고기간 : 패스워드 만료 경고 기간을 나타냅니다.


7. 패스워드 파기 기간 : 패스워드를 파기 하고 계정 비활성 기간을 나타냅니다.


8. 계정 만료 기간 : 패스워드의 만료 기간을 나타냅니다.


9. 예약 필드 : 예약필드입니다. (공백가능)

 

/etc/shadow 파일의 두번째 필드에는 패스워드가 저장됩니다.

엄청나게 문자로 길게 되어있는데, 두번째 필드에도 세부적인 필드가 존재합니다.

$id$salt$hashed

$id: 해싱 알고리즘

$salt: 해싱에 사용된 솔트(salt)값

$hashed: 해싱된 비밀번호 값


최근엔 보안이 좋은 SHA 알고리즘을 많이 사용하고 비밀번호 해쉬값은 crypt() 함수가 호출되어 생성됩니다.
$1$: MD5
$2a$: Blowfish
$2y$: Eksblowfish
$5$:  SHA-256
$6$:  SHA-512

 

 

Comments