IT/Linux

[Linux] Linux /etc/shadow 분석 & 관련 명령어 | /etc/default/useradd | /etc/skel | /etc/login.defs

o_zeew 2022. 2. 22. 15:28

(1) /etc/shadow

(2) 관련 명령어

(3) chage 명령어 실습

(4) /etc/default/useradd

(5) /etc/skel

(6) /etc/login.defs


 

1. /etc/shadow

   : 사용자의 계정에 관한 정보가 들어있는 파일


분석
ceo  : ID
$6$TjWz9u8M:    : 암호화된 패스워드(SHA512)
19041: : 마지막으로 패스워드를 변경한 날짜
0: : 패스워드 최소 사용기간 (이 기간 동안은 패스워드 변경 불가, 그냥 쓰세요!)
99999: : 패스워드 최대 사용일, 99999는 무제한임 (개인정보보호법 통상 45일, 최대 6개월 이내 변경)
7: : 경고 메세지 출력일
: : 유예기간
: : 계정 만료일

 



2. 관련 명령어
 

[chage]

기본 정보

  * 옵션
-m : 패스워드 최소 사용일 (2로 설정했다면 2일동안은 패스워드 변경 불가)

변경된 패스워드 최소 사용일 정보


-M : 패스워드 최대 사용일 (30으로 설정했다면 30일 후에는 패스워드 변경해야함) 

변경된 패스워드 최대 사용일 정보


-W : 경고 메세지 출력일 (7로 설정 했다면 패스워드 만료일 7일전부터 패스워드 만료일을 알리는 메세지가 Login시 출력됨)

변경된 패스워드 경고 메세지 출력일 정보


-I : 유예기간 (5일로 설정했다면 패스워드 만료후 5일 동안은 login시 패스워드 변경하면 다시 사용 가능함을 알리는 메세지 출력 및 패스워드 변경 가능, 출장 등의 이유로 무조건 만료시키면 안됨)

변경된 패스워드 유예기간 정보

-E : 계정의 만료일 (위의 옵션들은 모두 패스워드와 관련된 사항이지만 이 부분만 계정과 연관됨. 
따라서 패스워드를 변경하는 패스워드 변경일로부터 모든 설정이 다시 Reset되지만 이 계정 부분은 Reset 되지 않음   명확한 기일이 정해진 프로젝트 인력등에게 설정)

변경된 계정의 만료일 정보 (2022년 4월 1일은 1970년 1월 1일부터 19083일 후)

 



3. <chage 명령어 실습>

 

계정명 test1
passwd 최소 사용일 수 3일
passwd 최대 사용일 수 40일
passwd 만료 경고일 수 7일
passwd 유예기간  10일
계정 만료일 2022년 4월 20일

 

1. [useradd] 명령어로 계정 생성하기

2. [passwd] 명령어로 패스워드 설정하고 변경사항 확인하기

암호설정 후 변경된 test1의 패스워드 정보 (SHA512)

3. [chage -m] 명령어로 패스워드 최소 사용 기간 변경 후 확인

패스워드 최소 사용일 설정 후 변경된 정보

4. 변경된 설정 적용을 확인하기 위해 새로운 가상 터미널 생성

5. 새로 생성한 가상터미널로 로그인

6. 패스워드 입력

7. 패스워드 최소 사용일이 지나지 않았기 때문에 패스워드 변경 불가능 확인

  *구분을 위해 새로 생성한 가상머신은 화면 색상 변경

8. [date -s] 명령어를 사용해 패스워드 최소 사용일 이후로 현재시간 변경

패스워드 최소 사용일인 2022년2월24일 이후로 변경

9. 새로운 가상머신에서 비밀번호 변경 가능 확인

새 암호 입력창이 정상적으로 뜸

10. [chage -M] 명령어로 패스워드 최대 사용 기간 설정 후 확인

패스워드 최대 사용일 설정 후 변경된 정보

11. [chage -W] 명령어로 만료 경고일 수 변경 후 확인

패스워드 만료일인 2022년4월2일의 7일전부터 경고 메세지 출력

12. 패스워드 만료 경고 메세지 출력일로 날짜 변경

13. 새로운 가상머신에서 패스워드 만료 경고 메세지 출력 확인

3일 뒤 패스워드 만료 경고 메세지 출력

14. [chage -I] 명령어로 패스워드 유예 기간 설정 후 확인

패스워드 만료일인 2022년4월2일 이후 10일동안 유예기간 설정 확인

15. 패스워드 만료일 이후, 유예기간 내의 날짜로 변경

16. 새로운 가상머신에서 패스워드 만료 후 유예기간 내에 로그인 시 패스워드 변경 후 로그인 가능 확인

패스워드 만료 후 유예기간 안에 비밀번호 변경 시 로그인 가능 확인

17. [chage -E] 명령어로 계정 만료일 설정 후 확인

계정 만료일을 2022년4월20일로 변경 후 확인

18. 계정 만료일 이후로 날짜 설정

19. 새로운 가상머신에서 로그인시도 후 로그인 불가 확인

계정만료일 이후의 로그인 불가 확인

20. 계정 만료 전, 패스워드 유예기간 후 날짜로 변경

21. 계정 만료 전이지만 유예기간이 지난 후는 로그인 불가 확인

계정 만료 전이지만 유예기간이 지난 후 로그인 불가 확인

22. 유예기간 내의 날짜로 변경

23. 새로운 가상머신에서 비밀번호 변경 가능 확인

유예기간 내의 비밀번호 변경 가능 확인

24. 변경된 패스워드로 로그인 가능 확인

25. 패스워드 변경 후 패스워드 관련 모든 설정 변경 확인

패스워드만료일과 유예기간은 마지막 패스워드 변경일 기준, 계정만료일은 영향받지 않음

26. 실습 종료 후 반드시 현재 시간으로 날짜 변경

 

 


 

4. /etc/default/useradd

   : 사용사를 생성시에 기본으로 설정되는 옵션들이 들어있는 파일. 이 파일을 수정하여 사용자 생성 옵션을 다르게 설정할 수 있다. 

 

vi 편집기로 /etc/default/useradd 파일 열기

[/etc/default/useradd 에 설정되어있는 기본값]

- GROUP=100                      : -N 옵션을 이용해서 사용자 계정을 만들 때 기본적으로 들어가는 100(users) group

- HOME=/home                   : 사용자 생성 시 홈디렉토리 위치

- INACTIVE=-1                     : 패스워드 유예기간

- EXPIRE=                           : 계정 만료일

- SHELL=/bin/bash                : 사용자가 로그인하는 shell

- SKEL=/etc/skel                   : 사용자 생성시 자동 생성 디렉토리

- CREATE_MAIL_SPOOL=yes    : 사용자 메일 사서함 생성 여부

 

 


 

5. /etc/skel

 

/etc/skel 디렉토리에 manual.txt 파일 생성

후에 사용자 생성 시 /etc/skel 디렉토리의 파일들이 사용자의 홈디렉토리로 복사되는 것을 확인

 


6. /etc/login.defs

 

vi 편집기로 /etc/login.defs 파일 열기

[/etc/login.defs 에 설정되어있는 기본값]

- MAIL_DIR           /var/spool/mail    : 메일 사서함 생성 위치

- PASS_MAX_DAYS     99999             : 패스워드 최대 사용일 수

- PASS_MIN_DAYS      0                   : 패스워드 최소 사용일 수

- PASS_MIN_LEN        5                   : 패스워드 최소 길이

- PASS_WARN_AGE     7                   : 패스워드 만료 경고 메세지 표시일 수

- UID_MIN                     1000         : 기본적인 사용자 생성시 UID 시작 값

- UID_MAX                   60000        : 기본적인 사용자 생성시 UID 최대 값

- SYS_UID_MIN                 201        : 기본적인 시스템 계정의 UID 시작 값

- SYS_UID_MAX                999         : 기본적인 시스템 계정의 UID 최대 값

- GID_MIN                     1000         : 기본적인 사용자 생성시 GID 시작 값

- GID_MAX                   60000         : 기본적인 사용자 생성시 GID 최대 값

- SYS_GID_MIN                 201         : 기본적인 시스템 계정의 GID 시작 값

- SYS_GID_MAX                999          : 기본적인 시스템 계정의 GID 최대 값

- CREATE_HOME         yes                : 홈디렉토리 생성 여부

- ENCRYPT_METHOD  SHA512           : 암호화 방식

 

 


 

* [useradd -r] 명령어로 시스템 계정을 생성시에는 마지막 생성 uid 다음 숫자로 지정되는 일반 계정과 달리 시스템 계정은 201 ~ 999번 사이의 사용되지 않은 id를 찾아서 설정됨