728x90
반응형
패스워드 파일
리눅스 시스템을 사용하려면 로그인을 해야 하며, 로그인을 할 때는 사용자 ID와 패스워드를 입력해야 한다. 사용자가 패스워드를 입력하면 리눅스는 /etc/passwd 파일에 있는 패스워드와 패스워드를 암호문(해시함수)으로 비교하고 해당 값이 동일하면 로그인하는 구조이다. /etc/passwd 파일에는 해시로 암호화된 패스워드가 있지만, /etc/passwd에 패스워드를 저장하지 않고 /etc/shadow 파일에 패스워드를 저장할 수도 있다.
① /etc/passwd
- /etc/passwd는 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록을 저장하고 있는 정보 파일이다.
- 이 파일에 기록된 사용자 정보는 그 사용자가 로그인하고, 로그아웃할 때까지 항상 시스템이 사용자를 감시하기 위한 근거가 되는 파일이다.
- /etc/passwd에는 콜론(:)을 구분자로 ID, 개인의 홈 디렉터리 등 7개의 기본적인 정보를 담고 있으며, /etc/passwd의 패스워드를 다시 암호화하여 /etc/shadow에서 추가로 관리한다.
- 아래는 tail 명령어로 /etc/passwd 파일을 읽어서 출력한 결과이다.
■ /etc/passwd 기본 구조
- username : password : UID : GID : fullname : home-directory : shell
cat /etc/passwd
j9m:x:1001:1001::/home/j9m:/bin/bash
필드 | 설명 |
username | 사용자명으로 일명 ID라고 부른다. |
password | 사용자의 패스워드가 기록되는 부분으로 현재 대부분의 리눅스 배포판에서는 이필드에 기록되는 패스워드를 암호화하여 /etc/shadow에서 별도로 관리하며 x로 표현된다. |
UID | UserID로 리눅스에서는 사용자를 숫자값으로 관리한다. |
GID | GroupID로 사용자가 속한 그룹의 숫자값이다. |
fullname | 사용자에 대한 추가적인 정보가 기록되는 부분이다. |
home-directory | 사용자의 작업 디렉터리인 홈 디렉터리를 나타낸다. |
shell | 로그인시 사용하는 셸을 나타낸다. |
반응형
② /etc/shadow
- /etc/shadow는 /etc/passwd의 두 번째 필드인 패스워드 부분을 암호화하여 관리하는데 총 9개의 필드로 구성되어 있고 패스워드 만기일, 계정 만기일 등을 설정할 수 있다. 이 파일은 오직 root만 접근할 수 있다.
- 아래는 tail 명령어로 /etc/shadow파일을 읽어서 출력한 결과이다.
■ /etc/shadow 기본 구조
- username : password : last : may : must : warn : expire : disable : reserved
필드 | 설명 |
username | 사용자 이름, 즉 아이디를 나타낸다. |
password | 암호화된 사용자의 패스워드가 기록되어 있는 곳이다. 초기에는 MD5라는 암호화 알고리즘을 사용했고, Blowfish, SHA-256, SHA-512 등이 사용된다. SHA-512 알고리즘을 사용할 경우에는 $6으로 시작한다. |
last | 가장 최근에 패스워드를 바꾼 날로 1970년 1월 1일부터 계싼한 날수이다. 아울러 이값을 0으로 변겨앟면 다음 로그인할 때 반드시 패스워드를 변경해야 한다. |
may | 패스워드를 바꾼 후 최소로 사용해야 되는 날짜수로 다른 패스워드로 변경 가능하기까지의 유예 기간이다. 0이라면 언제라도 패스워드를 변경할 수 있다. |
must | 현재 사용 중인 패스워드의 최대 사용 가능한 기간, 즉 현재 패스워드 유효 기간이다. 99999이면 패스워드를 변경하지 않고 계속 사용 가능하다는 것을 의미한다. |
warn | 패스워드 사용기한이 만료되기 저너에 사용자에게 바꿀 것을 경고하는 기간이다. |
expire | 패스워드 사용기한이 만료된 뒤에 실제 계정이 불가능하기까지 기간으로 일조의 유예 기간이다. |
disable | 계정 만기일로 계정 사용 불가능하게 된 날 또는 불가능하게 되는 날이다. 역시 1970년 1월 1일부터 계산한 날 수이다. |
reserved (9번째 필드) |
다른 기능을 사용하기 위해 남겨둔 예약된 공가능로 아직 사용하지 않고 있다. |
728x90
관련 명령어 : pwconv, pwunconv
현재 대부분의 리눅스 배포판에서는 사용자의 패스워드를 /etc/passwd가 아닌 /etc/etc/shadow에서 관리하고 있다. 만약, /etc/passwd에서 관리하려면 pwunconv라고 입력하면 되고, 다시 /etc/shadow에서 관리하려면 pwconv라고 입력하면 된다. 그러나 패스워드의 효율적 관리와 보안 측면에서는 /etc/shadow를 사용하는 것이 좋다.
참고자료
CentOS 7으로 리눅스마스터 1급 정복하기
728x90
반응형
'Linux' 카테고리의 다른 글
Linux - 사용자 계정 관리 명령어: usermod (0) | 2024.11.20 |
---|---|
Linux - DHCP 서버 설정 (0) | 2022.11.16 |
Linux - 삼바 클라이언트 명령어 : smbclient (0) | 2022.11.11 |
Linux - apache 웹서버 실행 명령어 : httpd (0) | 2022.11.07 |
Linux - apache 계정 생성 명령어 : htpasswd (0) | 2022.11.07 |