1. /etc/shadow 분석
1.1. 원본 ceo:$6$e2Y8xTVa$LqiVTXQPvt76x6jxRkv0i6EHNe:19047:0:99999:7:::
1.2. 분석
- ceo:
- ID
- $6$e2Y8xTVa$LqiVTXQPvt76x6jxRkv0i6EHNe:
- 암호화 된 패스워드 (SHA512)
- 19047:
- 마지막 패스워드 변경 날짜
- 1970년 1월 1일을 기준으로 날수를 기록함
- 0:
- 패스워드 최소 사용 기간 (이 기간 동안은 패스워드 변경 불가)
- 99999:
- 패스워드 최대 사용 일
- 99999는 무제한을 의미
- 개인정보보호법 통상 45일, 최대 6개월 이내 변경
- 7:
- 경고 메세지 출력일
- :
- 유예기간
- :
- 계정 만료일
※ a, b 계정 생성 및 a 패스워드 설정
- 계정의 패스워드를 설정한 경우 /etc/shadow 파일에 패스워드가 SHA512로 암호화되어 저장된다.
- 계정의 패스워드를 설정하지 않은 경우 !!로 저장되는 것을 확인할 수 있다.
2. 관련 명령어
2.1. chage
2.2. 옵션
- -l (소문자 L)
- chage 설정 내용 확인
- -m
- 패스워드 최소 사용일
- ex) chage -m 2 (2일 동안은 패스워드 변경 불가)
- -M
- 패스워드 최대 사용일
- ex) chage -M 30 (30일 후에는 패스워드를 변경해야 함)
- -W
- 경고 메세지 출력일
- ex) chage -W 7 (패스워드 만료일 7일 전부터 패스워드 만료일을 알리는 메세지가 Login 시 출력됨)
- -I (대문자 i)
- 유예기간 (출장 등의 이유로 무조건 만료시키면 안됨)
- ex) chage -I 5 (패스워드 만료 후 5일 동안은 login 시 패스워드를 변경하면 사용가능함을 알리는 메세지 출력 및 패스워드 변경가능)
- -E
- 계정의 만료일
- 모두 패스워드와 관련된 사항이지만 이 부분만 계정과 연관됨. 따라서 패스워드 변경일로부터 모든 설정이 다시 Reset 되지만 해당 부분은 Reset되지 않음
- 명확한 기일이 정해진 프로젝트 인력 등에 설정
- ex) chage -E 2022/03/31
※ 계정 a의 chage 설정 내용 확인 (-l 옵션)
※ 계정 a의 패스워드 최소 사용일 3일로 설정 (-m 옵션)
- a 계정 로그인 후 패스워드 변경 시도 시 메세지가 출력되며 패스워드가 변경되지 않는다.
- date -s 명령어를 사용하여 시스템 시간을 현재 시간기준 7일 뒤인 2022/03/05일자로 임의 변경 후에 passwd 명령어를 사용하여 패스워드 변경을 진행할 경우 새 암호를 입력할 수 있는 것을 확인할 수 있다.
※ 계정 a의 패스워드 최대 사용일을 30일로 변경 (-M 옵션)
- 테스트를 위해 암호 만료일 이후로 시스템 시간을 강제로 변경한 후 a 계정으로 로그인 진행
- 암호 변경 메세지가 출력되며, 암호를 변경해야 로그인이 가능하다.
※ 계정 a의 패스워드 만료 경고 메세지 출력일을 5일로 변경 (-W 옵션)
- 암호 만료일 3일 전으로 시스템 시간 변경 후 a 계정으로 로그인 진행
- 만료 일자를 알리는 메세지가 출력된다. → Warning: your password will expirre in 4 days
※ 계정 a의 패스워드 유예기간 5일로 변경 (-I 옵션), 테스트를 위해 시스템 시간 변경
- 암호 만료일 이후 ~ 비활성화 기간 전인 2022/03/31 일자로 시스템 시간 변경 후 a 계정으로 로그인 진행
- 패스워드 만료 및 변경 안내 메세지가 출력된다. → You are required to change your password immediately .....
※ 계정 a의 계정 만료일 2022/05/01로 변경 (-E 옵션)
- 계정 만료일 이후로 시스템 시간 변경 후 a 계정 로그인
- 계정 만료 메세지가 출력된다.
※ 계정 a의 패스워드 변경 후 chage 설정 정보 확인
- 패스워드 유예기간으로 시스템 시간 변경
- a 계정으로 로그인 후 패스워드 변경
- chage -l a 명령어를 사용하여 설정 정보를 확인해보면 계정 만료 외에 정보가 모두 변경된 것을 확인할 수 있다.
- 계정 만료 정보는 패스워드를 변경해도 Reset 되지 않는다.
[문제 풀어보기]
[문제 1]
password 최소 사용일 수 : 4일
password 만료 경고일 수 : 7일
password 사용 최대일 수 : 50일
password inactive 기간 : 5일
계정 만료일 : 2022/05/31
시스템 시간 변경 - pw 만료일 경고기간
시스템 시간 변경 - pw 유예기간
시스템 시간 변경 - pw 유예기간 이후
시스템 시간 변경 - 계정 만료일 이후
3. /etc/default/useradd
useradd 명령어를 사용하여 계정 생성 시 useradd파일에 설정되어있는 내용을 참조한다.
3.1. 파일 내용
- GROUP
- useradd 명령어를 사용 시 -N 옵션을 주면 해당 그룹으로 계정이 생성됨
- HOME
- 계정 생성 시 지정되는 홈 디렉토리 경로
- INACTIVE
- 패스워드 유예기간
- pw 최대 사용일이 지정되어야만 설정됨
- EXPIRE
- 계정 만료일
- ex) 2022/05/01
- SHELL
- 로그인 시 사용할 쉘
- SKEL
- 사용자 계정 생성 시 사용자의 홈디렉토리에 복사해가는 디렉토리
- CREATE_MAIL_SPOOL
- 계정 생성 시 메일 사서함 파일을 생성할 것인지의 여부
- 메일 사서함 파일 경로 : /var/spool/mail/사용자
※ 유저 aa 생성. 이때 사용자 홈디렉토리는 /home_1 디렉토리 아래에 생성, 유예기간은 7일, 계정 만료일은 2022/05/01로 설정, 로그인쉘은 /bin/sh, skel 디렉토리의 위치는 /etc/skel_1, 메일사서함파일 생성되도록 지정
(-N 옵션 지정하지 않음)
- aa 계정 생성 시 홈디렉토리, 계정 만료일, 로그인쉘, skel 디렉토리, 메일사서함파일 모두 정상적으로 설정된 것을 확인할 수 있다.
- /etc/shadow 파일의 패스워드 유예기간은 정상적으로 설정 되었으나 chage -l 명령어로 확인해보면 유예기간이 설정되지 않은 것을 확인할 수 있다.
- 암호 만료일을 지정하지 않으면 유예기간이 설정되지 않는다.
- 계정 생성 시 지정한 그룹 ID로 설정되지 않은 것을 확인할 수 있다.
- 계정 생성 시 지정한 그룹 ID로 설정하기 위해서는 useradd 명령어 사용 시 -N 옵션을 지정한다.
※ 암호 만료일을 설정한 후 chage 설정 내용을 다시 확인해보면 유예기간이 암호만료일 7일 이후로 설정된 것을 확인할 수 있다.
※ 계정 생성 시 -N 옵션을 주어 위에서 생성했던 aa계정과 동일한 설정으로 bb 계정을 생성해 보자
- /etc/default/useradd 파일에서 설정한 100으로 그룹ID가 설정된 것을 확인할 수 있으며, 그 외 정보는 aa계정과 동일하다.
4. /etc/login.defs
사용자 계정의 설정과 관련된 기본값을 정의한 파일
4.1. 파일 내용
항목 | 기본값 | 의미 |
MAIL_DIR | /var/mail | 기본 메일 디렉토리 |
PASS_MAX_DAYS | 99999 (무제한) | 패스워드 최대 사용 기간 |
PASS_MIN_DAYS | 0 | 패스워드 최소 사용 기간 |
PASS_MIN_LEN | 5 | 패스워드 최소 길이 |
PASS_WARN_AGE | 7 | 경고 메세지 출력일 |
UID_MIN, UID_MAX | 1000~60000 | 사용자 계정의 UID 범위 |
SYS_UID_MIN, SYS_UID_MAX | 100~999 | 시스템 계정의 UID 범위 |
GID_MIN, GID_MAX | 1000~60000 | 사용자 계정의 GID 범위 |
SYS_GID_MIN, SYS_GID_MAX | 100~999 | 시스템 계정의 GID 범위 |
UMASK | 022 | umask 값 설정 |
USERGROUPS_ENAB | yes | 사용자 계정 삭제 시 그룹 삭제 여부 |
ENCRYPT_METHOD | SHA512 | 암호화 기법 |
[문제 풀어보기]
chage 명령어X
/etc/default/useradd, /etc/login.def 파일 활용
[문제1]
유저 test1 생성
이때 코멘트는 admin, 기본그룹 201, 사용자 홈 디렉토리는 home_2 아래에 생성되도록, 패스워드 유예기간은 3일, 계정 만료일은 2022.07.21,
사용자 메일 사서함 파일은 생성하지 않으며, 패스워드 최소 사용일은 4일, 패스워드 최대 사용일은 50일, 패스워드 최소 길이는 6으로 지정한다. (그 외 설정은 기본 설정)
[문제2]
유저 test2 생성
이때 코멘트는 sales 기본그룹 202, 사용자 홈 디렉토리는 home_2 아래에 생성되도록, 패스워드 유예기간은 5일, 계정 만료일은 2022.04.01,
로그인쉘은 sh 로 지정, 사용자 메일 파일은 /var/spool/mail_1아래에 생성, 패스워드 최소 사용일은 3일, 패스워드 최대 사용일은 30일, 경고메세지는 만료 5일 전부터 출력하도록 지정한다. (그 외 설정은 기본 설정)
[문제3]
시스템 계정 test3 생성. 코멘트는 systemadmin으로 생성.
- 시스템 계정 생성 시 UID는 201~999 사이의 비어있는 번호로 지정된다.
- 시스템 계정은 패스워드 설정에 영향을 받지 않은 것을 확인할 수 있다. (패스워드 사용기간, 유예기간, 계정 만료일 등)
'Linux' 카테고리의 다른 글
09. CentOS7 - ACL(Access Control List) (0) | 2022.03.01 |
---|---|
08. CentOS7 : Disk관리/Partitioning/LVM (0) | 2022.03.01 |
06. CentOS7 명령어 - useradd, usermod, userdel, group (0) | 2022.02.22 |
05. CentOS7 명령어 - vi 편집기 (0) | 2022.02.22 |
04. CentOS7 명령어 - 속성 정보 분석 및 파일 권한 (chmod) (0) | 2022.02.22 |