공부/이모저모

리눅스 계정 구조 / 사용자 정보 구조 / 파일 딕셔너리 권한 (etc/passwd 구조, etc/shadow구조)

JUNFUTURE 2021. 9. 17. 02:59

리눅스의 계정은 일반 사용자와 최고 관리자(root) 계정으로 구분된다.

  • 사용자 계정 목록을 담고 있는 파일 : /etc/passwd
  • 비밀번호가 저장된 파일 : /etc/shadow (윈도우의 SAM과 유사)

/etc/passwd 파일 안에는 비밀번호가 저장되어있지 않다. (=> 비밀번호는 /etc/shadow에 저장)

 

 

etc/passwd구조

etc/passwd는 사용자 계정(!=패스워드)에 대한 정보를 담고 있는 파일이다.

root:x:0:0:root:/root:/bin/bash

순서대로

(1)사용자 계정 : (2)패스워드 : (3)사용자 번호 : (4)그룹 번호 : (5)실제 이름 : (6)사용자 홈디렉터리 : (7)사용자 shell

이다.

 

(1)사용자 계정 : 어떤 계정인지를 의미한다. root는 최고관리자.

(2)패스워드 : 기존에 이곳에 패스워드 값이 있었으나, 패스워드는 /etc/shadow에서 관리한다. x는 패스워드가 단방향 암호화되어 shadow 파일에 저장되어 있음을 나타낸다.

(3)사용자 번호 : 0번은 최고 관리자 root를 나타낸다.

(4)그룹 번호 : 0번은 최고 관리자 root 그룹을 나타낸다.

(5)실제 이름 : 시스템 설정에 영향이 없는 이름이다. 재미있게 지어도 괜찮다.

(6)사용자 홈 디렉터리 : 사용자의 홈 디렉터리 경로이다. 관리자 계정은 /root 이며 일반 사용자는 /home/사용자이름 처럼 /home 디렉터리 밑에 위치한다.

(7)사용자 shell : 사용자가 사용하는 shell로 기본 설정은 bash shell이다.

 

 

etc/shadow 구조

etc/shadow는 패스워드에 대한 자세한 정보를 담고 있는 파일이다.

root:$5$1123.....PAsfwef\ : 14923 : 0 : 99999 : 7 : : :

순서대로

(1)사용자 계정 : (2)패스워드(단방향 해시 암호화) : (3)패스워드를 마지막으로 변경한 날 : (4)이전 패스워드 사용한 기간 : (5)비밀번호 최대 사용가능기간 : (6)변경통지

이다.

 

(1)사용자 계정 : 어떤 계정인지를 의미한다. root는 최고관리자.

(2)패스워드(단방향 해시 암호화) : 패스워드가 hash로 단방향 암호화 되어있다. $1$로 시작하면 MD5, $5$로 시작하면SHA256, $6$로 시작하면 SHA512를 의미함. 위의 예시는 SHA256 적용

(3)패스워드를 마지막으로 변경한 날 : 1970년 1월 1일부터 마지막으로 패스워드를 변경한 날까지의 일 수 (14923일)

(4)이전 패스워드 사용한 기간 : 패스워드를 변경하기 이전에 패스워드를 사용한 기간. 최초 설정 후 변경 없으면 0

(5)비밀번호 최대 사용가능기간 : 보안 정책에 따른 비밀번호 사용가능기간 (변경주기)

(6)변경통지 : 최대 사용가능기간이 임박할 경우 며칠 전에 통지를 보낼지 지정

 

 

파일/폴더 권한

r : read 읽기 권한 w : write 쓰기 권한 x : execute 실행 권한 s : setuid 임시권한할당

권한을 읽을때는 맨 앞한글자를 제외한뒤 나머지 9글자를 3글자씩 끊어서 읽는다.

-rwsr-xr-x
=>
- / rws / r-x / r-x
(1) 파일 또는 폴더 표시 (2) 파일 또는 폴더 소유자 (3) 파일 또는 폴더 그룹 권한 (4) 제 3자 권한

(1) 파일 또는 폴더 표시 : -는 일반 파일 d는 딕셔너리(폴더)

(2) 파일 또는 폴더 소유자 : 소유자에 대한 권한을 나타낸다. 위의 예시의 경우 소유자에 대해 읽기권한, 쓰기권한, 임시권한이 할당되어있다.

(3) 파일 또는 폴더 그룹 권한 : 그룹에 대한 권한을 나타낸다. 위의 예시의 경우 그룹에 대해 읽기권한과 실행권한이 할당되어 있다.

(4) 제 3자 권한 : 해당 파일 및 폴더의 소유자도 그룹도 아닌 제 3자에 대한 권한을 나타낸다. 위의 예시의 경우 제 3자에 대해 읽기권한과 실행권한이 할당되어 있다.

 

파일/폴더 권한 숫자 표시

rwx권한을 각각 읽기는 4, 쓰기는 2, 실행은 1로 표현할 수 있다.

rw-r-xr-x => 42-4-14-1 -> 655

이에 다음과 같은 명령어도 존재한다.

chmod 655 test

test라는 파일에

6-5-5 권한을 부여하는 것이다.

즉, 42-4-14-1 (rw-r-xr-x) 권한을 부여한다.