패스워드 관련 설정파일
1. /etc/passwd
cut -d ":" -f 1,2 /etc/passwd
/etc/passwd 파일의 2번째 열 값이 encrypted password 를 의미하며, "x" 인 경우, 실제 encrypted password 는 /etc/shadow 파일에 저장되어있음
2. /etc/shadow
cat /etc/shadow
test:$6$2i(...생략):20158:0:99999:7:10:20239:
- 2번째 열 값: encrypted password
이 값에 "*", "!" 가 들어가는 경우는 로그인 불가 계정을 의미하며, 아래와 같다.- *: 시스템 계정
- !: 잠긴 계정 또는 아직 패스워드를 설정하지 않은 계정
- 3번째 열 값: date of last password change
패스워드가 마지막으로 수정된 날짜. 1970.01.01 기준으로 지난 일 수. - 4번쨰 열 값: minimum password age
수정된 패스워드를 사용해야하는 최소 일 수(기본값: /etc/login.defs 의 PASS_MIN_DAYS 값)
즉, 3번째 열 값 + 4번째 열 값 날짜까지 수정된 패스워드를 사용해야 한다.
passwd -n {일수} {유저명}
으로 수정 가능 - 5번째 열 값: maximum password age
수정된 패스워드를 사용할 수 있는 최대 일 수(기본값: /etc/login.defs 의 PASS_MAX_DAYS 값)
즉, 3번째 열 값 + 5번째 열 값 날짜까지 수정된 패스워드를 사용할 수 있다.(273년으로 사실상 영구라고 봐도 됨)
passwd -x {일수} {유저명}
으로 수정 가능 - 6번째 열 값: password warning period
패스워드 만료 경고를 알릴 일 수(기본값: /etc/login.defs 의 PASS_WARN_AGE 값)
즉, 3번째 열 값 + 5번째 열 값 - 6번째 열 값 일 부터 경고를 띄운다.(maximum password age 에 도달하기 전 경고를 띄울 일 수)
password -w {일수} {유저명}
으로 수정 가능 - 7번째 열 값: passowrd inactivity period
패스워드 만료일이 지난 후 계정이 비활성화 되기까지의 일 수(패스워드 변경을 하지 않을시)
즉, 3번째 열 값 + 5번째 열 값 + 7번째 열 값 일 부터 계정이 비활성됨.
(패스워드 만료일이 지나가면 로그인 시 강제로 패스워드를 수정하게 유도되는데, 계정이 비활성화되면 아예 로그인이 제한됨.) - 8번째 열 값: account expiration date
(패스워드 만료일과 관계 없는)계정 만료일
useradd -e {YYYY-MM-DD} {유저명}
으로 설정 가능 - 10번째 열 값: reserved field
예약된 필드(빈값)
e.g.
passwd -x 30 -w 5 -n 1 -i 10 test
=> test 계정에 대해 오늘을 기준으로 최소 1일, 최대 30일 후 까지 현재 패스워드를 사용할 수 있게 하되, 만료 5일 전 부터 경고를 띄우며, 만료일이 지나도 10일 동안 패스워드를 변경하지 않으면 계정을 비활성화한다.
3. /etc/login.defs
계정생성, 패스워드 할당시 default 로 적용되는 값
cat /etc/login.defs
ENCRYPT_METHOD SHA512 # password 를 암호화 할 때 쓰인 알고리즘
PASS_MAX_DAYS 99999 # password 최대 유효 일 수(만료까지의 일 수)
PASS_MIN_DAYS 0 # password 최소 유지 일 수
PASS_WARN_AGE 7 # password 만료 전 경고를 띄울 일 수
UID_MIN 1000 # uid 최소값
UID_MAX 60000 # uid 최대값
GID_MIN 1000 # gid 최소값
GID_MAX 60000 # gid 최대값
USERGROUPS_ENAB yes # 유저계정 삭제시 primary group 도 값이 삭제할지 여부
ENCRYPT_METHOD 암호화 알고리즘 별로 encrypted password 의 시작하는 값이 아래와 같다.
- SHA256: $5$
- SHA512: $6$
- MD5: $1$
패스워드 관리 명령어
1. passwd
특정 계정에 패스워드를 할당하거나 패스워드 정책을 수정
Options:
-d, --delete: 패스워드 삭제
-e, --expire: 로그인할 때 새로운 패스워드를 설정하도록 유도. date of last password change 을 0 으로 세팅
-i, --inactive {일수}: 패스워드 만료 후 계정 비활성화 유예 일 수 세팅
-l, --lock: 패스워드 잠금(로그인 불가)
-n, --mindays {일수}: 현재 패스워드 사용 최소 일 수 세팅
-u, --unlock: 패스워드 잠금 해제
-w, --warndays {일수}: 패스워드 만료 전 경고를 띄울 일 수 세팅
-x, --maxdays {일수}: 현재 패스워드 사용 최대 일 수 세팅
2. chage
패스워드 만료 정책 수정
Options:
-E, --expiredate {YYYY-MM-DD}: 계정 만료 일 세팅
-I, --inactive {일수}: 패스워드 만료 후 계정 비활성화 유예 일 수 세팅
-l, --list: 패스워드 만료 관련 정보 출력
-m, --mindays {일수}: 현재 패스워드 사용 최소 일 수 세팅
-M, --maxdays {일수}: 현재 패스워드 사용 최대 일 수 세팅
-W, --warndays {일수}: 패스워드 만료 전 경고를 띄울 일 수 세팅
e.g.
chage -M 90 -m 0 -W 7 -I 20 test
=> test 계정에 대해 오늘을 기준으로 최소 0일, 최대 90일 후 까지 현재 패스워드를 사용할 수 있게 하되, 만료 7일 전 부터 경고를 띄우며, 만료일이 지나도 20일 동안 패스워드를 변경하지 않으면 계정을 비활성화한다.
3. usermod
계정 정보 수정, 패스워드 만료 정책 수정
Options:
-e, --expiredate {YYYY-MM-DD}: 계정 만료 일 세팅
-f, --inactive {일수}: 패스워드 만료 후 계정 비활성화 유예 일 수 세팅
-L, --lock: 패스워드 잠금(로그인 불가)
-U, --unlock: 패스워드 잠금 해제
'Linux' 카테고리의 다른 글
[LINUX] 리눅스 계정, 그룹 관리 명령어 정리 (0) | 2025.03.04 |
---|---|
[LINUX] 파일 압축시 자주 쓰는 명령어 정리 tar gzip bzip2 xz zip (0) | 2025.03.02 |
[LINUX] 권장되는 조건문 사용방법 (0) | 2024.10.10 |
[LINUX] 위치매개변수 정리 (0) | 2022.12.27 |
[LINUX] 리눅스 쉘 매개변수 확장 정리 := :- 차이 등 (0) | 2022.12.27 |