반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

비구름

14. Linux /etc/shadow 파일, /etc/default/useradd 파일, /etc/login.defs 파일, /etc/skel 디렉토리란? 본문

공부

14. Linux /etc/shadow 파일, /etc/default/useradd 파일, /etc/login.defs 파일, /etc/skel 디렉토리란?

비구름 2022. 2. 22. 11:09
반응형

오늘은 지난 시간에 포스팅한 /etc/passwd, /etc/group 에 이어 /etc/shadow, /etc/default/useradd, /etc/login.defs, /etc/skel 에 대해서 알아 보겠습니다.

1. 파일 및 디렉토리에 대하여

1.1. /etc/shadow : 암호화된 패스워드와 패스워드 설정 정책을 갖고 있는 파일

1.2. /etc/default/useradd : 사용자를 생성할 때 여러 설정 항목들을 기본 값으로 가질 수 있도록 설정해주는 파일 ( 사용자를 생성할 때 가장 먼저 참조됨)

1.3. /etc/login.defs : 사용자 계정의 설정과 관련된 기본 값을 정의한 파일 ( 사용자를 생성할 때 두 번째로 참조됨)

1.4. /etc/skel : 사용자를 생성할 때 홈 디렉토리를 만드는데 필요한 기본이 되는 디렉토리

2. /etc/shadow 파일

2.1 /etc/shadow 파일 분석 

원본

a: ID

$6$Uax58hIg$... : 암호화된 패스워드(설정된 암호화 방식으로 암호화됨(암호화 방식 : SHA512))

19041: 마지막으로 패스워드 변경한 날짜 (197011일 기준으로 + 19041일)

0: 패스워드 최소 사용기간 (이 기간 동안은 패스워드 변경 불가)

99999: 패스워드 최대 사용일 (개인정보보호법 통상 45일 최대 6개월 이내 변경)

7: 경고 메시지 출력일

: 유예기간

: 계정 만료일

3. Chage 명령어

3.1. Chage : 사용자 패스워드 관리 명령어

3.2 옵션

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

ex : chage m 2

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

ex : chage M 30

3.2.3. -W : 경고 메시지 출력일 (7로 설정 했다면 패스워드 만료일 7일전부터 패스워드 만

료일을 알리는 메시지가 Login시 출력됨.)

ex : chage W 7

3.2.4. -I : 유예기간 (5일로 설정했다면 패스워드 최대 사용일이 지난 후 5일 동안은 login시 패스워드 변경하면 사용 가능함을 알리는 메시지 출력 및 패스워드 변경가능)

ex chage I 5

3.2.5. -E : 계정의 만료일(계정과 연관된 옵션. 패스워드는 패스워드를 변경하는 패스워드 변경일로부터 모든 설정이 다시 Reset되지만 계정 부분은 Reset 되지 않음)

ex : chage E 2022/03/31

4. Chage 명령어 실습

4.1 Chage 명령어를 통해 변경할 설정 값

사용자 이름  test1
패스워드 최소 사용일 수 3일
패스워드 최대 사용일 수 30일
패스워드 만료 경고일 수 7일
패스워드 유예 기간 10일
계정 만료일 2022년 4월 20일

4.2. useradd 명령어를 통해 사용자 test1을 생성 (!!는 패스워드 미설정을 의미)

4.3. passwd 설정 후 /etc/shadow 파일의 변경 사항 확인

4.4. chage -m 옵션으로 패스워드 최소 사용기간 변경 후 결과 값 확인

4.5. 변경된 설정이 제대로 적용 됐는지 테스트하기위해 새로운 가상 터미널 생성

4.6 가상 터미널 실행 후 test1로 로그인

4.7. 설정한 패스워드 입력

4.8. 패스워드 최소 사용기간을 지나지 않았기 때문에 패스워드 변경이 불가능한 것을 확인

4.9. 패스워드 최소 사용기간이 지나면 패스워드가 정상적으로 변경되는지 확인하기 위하여 date 명령어로 현재 시간을 변경

4.10. 새로운 가상 터미널에서 패스워드 변경이 정상적으로 이뤄지는 것을 확인 ( 패스워드는 4.23. 에서 변경)

4.11. chage -M 명령어로 패스워드 최대 사용일을 설정하고 변경 값 확인

4.12. chage -W 명령어로 만료 경고일 수 변경 후 확인 (실습에서 설정할 값이 7일이기 때문에 확인 후 다시 7일로 설정)

4.13. 패스워드 만료 경고 메시지가 출력되는 것을 확인하기 위해 날짜 변경

4.14. 패스워드 만료 경고 메시지 출력 확인

4.15. chage -I 명령어를 통해 패스워드 유예 기간 설정

4.16. 유예 기간이 옳바르게 설정되었는지 확인하기 위해 날짜 변경

4.17. 패스워드가 만료되었고 유예 기간 내에 변경하면 다시 로그인 할 수 있음을 확인

4.18. chage - E 명령어를 통해 계정 만료일 설정

4.19. 계정 만료일이 정상적으로 설정되었는지 확인하기 위해 날짜 변경

4.20. 계정이 만료되어 로그인이 불가능함을 확인

4.21. 계정 만료일이 되지 않았어도 유예기간이 지나면 계정이 만료되는 것을 확인하기 위해 날짜 변경

4.22. 유예 기간이 지나면 로그인할 수 없음을 확인

4.23. 위에서 패스워드 재설정을 하지 않았기 때문에 정상적으로 변경되는 지를 확인하기 위해 날짜 변경

4.24. 로그인 후 패스워드가 정상적으로 변경되는 것을 확인

4.25. 변경된 패스워드로 정상적으로 로그인되는 것을 확인

4.26. 실습 종료 후 날짜를 현재 시각으로 설정

5.  /etc/default/useradd, /etc/login.defs, /etc/skel

5.1. vi 편집기로 /etc/default/useradd 열기

5.2. /etc/default/useradd 에 설정된 default 값 확인

GROUP=100                    : 사용자 생성 시 -N 옵션으로 그룹을 생성하지 않으면 속하게되는 기본 그룹
HOME=/home                 : 사용자 생성 시 홈디렉토리가 생성될 위치
INACTIVE=5                    : 패스워드 유예 기간
EXPIRE=                         : 계정 만료일
SHELL=/bin/bash              : 사용자가 login할 shell 
SKEL=/etc/skel                 : 사용자 생성 시 참조할 skel 디렉토리
CREATE_MAIL_SPOOL=yes  : 메일 사서함 생성 여부

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

5.4. :se nu 로 줄 넘버 표기

5.5. /etc/login.defs 에 설정된 default 값 확인

MAIL_DIR        /var/spool/mail : 메일 사서함이 생성되는 위치

PASS_MAX_DAYS   100           : 패스워드 최대 사용일 수
PASS_MIN_DAYS   7               : 패스워드 최소 사용일 수
PASS_MIN_LEN    3               : 패스워드 최소 길이
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 최대 값

5.6 비어 있는 /etc/skel 디렉토리에 test.txt. 생성

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

5.8 useradd -r 명령어로 시스템 계정 생성 ( 201~999번 사이에서 비어 있는 ID를 찾아 설정됨)

6. /etc/default/useradd, /etc/login.defs, /etc/skel 실습 문제 풀이

1. 사용자 계정 a를 생성, user 그룹에 생성, 홈디렉토리는 /home_1, 암호 만료기간은 2022/03/20, SHELL=/bin/sh, SKEL=/etc/skel1로 설절하고 계정 생성 시 /etc/skel1/aa.txt 파일을 홈디렉토리로 복사

# mkdir /home_1
# vi /etc/default/useradd
GROUP=100
HOME=/home_1
INACTIVE=-1
EXPIRE=2022/03/20
SHELL=/bin/sh
SKEL=/etc/skel1
CREATE_MAIL_SPOOL=yes
# mkdir /etc/skel1
# touch /etc/skel1/aa.txt
# useradd -N a

 

2. 사용자 계정 b를 생성, uid 2000, gid 2001, 홈디렉토리 /home_2, 패스워드 최소 사용일 수 3일, 패스워드 최대 사용일 수 30일, 패스워드 만료 경고일 수 5일, 패스워드 유예 기간 5일, 계정 만료일 2022년 2월 20일, 메일 사서함을 만들지 않음.

# mkdir /etc/home_2

# groupadd -g 2001 aa

# vi /etc/default/useradd
GROUP=100
HOME=/home_2
INACTIVE=5
EXPIRE=2022/02/20
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

# vi /etc/login.defs

PASS_MAX_DAYS   30
PASS_MIN_DAYS   3
PASS_MIN_LEN    3
PASS_WARN_AGE   5

# useradd -u 2000 -g 2001 b

반응형
Comments