운영중입니다

리눅스 계정 비밀번호 만료 설정 및 확인 방법 정리 본문

리눅스

리눅스 계정 비밀번호 만료 설정 및 확인 방법 정리

https443 2025. 10. 22. 12:10

'예제

서버에 FTP 접속 시도했으나 실패함. 여러 원인 있을 수 있으나 로그 확인 결과

pam_unix(sshd:account): expired password for user <계정> (password aged)


해당 메시지일 경우, 사용자 계정의 비밀번호가 만료되어 접속 불가했던 것. 비밀번호 재설정 후 접속 정상됨.

* CentOS7에서 확인 후 작성


✅ 1. 비밀번호 만료 기간을 설정하는 이유?

가장 큰 이유는 보안 강화임.

  • 일정 주기로 비밀번호를 변경하게 하여 계정 도용 위험 줄임.
  • 장기간 동일한 비밀번호 사용 시 유출 가능성 증가 방지.

즉, 비밀번호 주기적 변경으로 시스템 접근 안정성 확보가 핵심임.


✅ 2. 비밀번호 만료 설정 확인 및 설정 방법

2.1 /etc/shadow 파일 확인
/etc/shadow 파일에는 사용자 계정의 비밀번호 관련 정보가 저장되어 있음.

#ex)
<사용자이름>:<암호화된비밀번호>:20258:7:99999:7:::
필드번호 항목 내용
1 사용자 이름 계정명
2 암호화된 비밀번호 !!이면 잠금 상태
3 마지막 비밀번호 변경일 1970-01-01 기준 일수
4 최소 사용일 비밀번호 변경 최소 간격(일)
5 최대 사용일 비밀번호 만료까지의 일수
6 경고일 만료 전 경고 시작일(일)
7 비활성화일 비밀번호 만료 후 계정 비활성까지의 일수
8 계정 만료일 계정 자체 만료일(일 단위)
9 예약 필드 사용 안 함

 

#passwd 수정
vim /etc/passwd

* /etc/passwd 파일을 수정하여 적용 가능하나 권장 되는 사항은 아님


2.2 /etc/login.defs 설정 확인
/etc/login.defs 파일은 신규 계정 생성 시 기본 비밀번호 정책을 정의함.

# 설정 확인
grep PASS_ /etc/login.defs
grep ^PASS_ /etc/login.defs

 

항목 의미 정의
PASS_MAX_DAYS 최대 사용일 비밀번호 변경 후 유지 가능한 최대 일수
PASS_MIN_DAYS 최소 사용일 다음 변경 전 최소 유지 일수
PASS_WARN_AGE 경고일 만료 전 경고 시작 시점(일)
PASS_MIN_LEN 최소 길이 비밀번호 최소 자리수 (일부 OS에서 적용)
ENCRYPT_METHOD 암호화 방식 SHA512 등 해시 알고리즘 방식

 

# 설정 수정
vim /etc/login.defs


*  /etc/login.defs는 기존 계정에는 바로 적용되지 않음, 신규 계정 생성 시 기본값으로 적용됨.


 

2.3 chage 명령어로 직접 확인 및 변경

#특정 사용자 비밀번호 만료 정보 확인 명령어

sudo chage -l <사용자 계정>

 

# 특정 사용자 만료 정보 변경
#ex)
chage -M 90 -m 1 -W 7 <사용자 계정>

 


✅ 3. chage 명령어 주요 옵션

옵션 의미 예시 설명
-M 최대 사용일 chage -M 90 user1 90일마다 비밀번호 변경 필요
-m 최소 사용일 chage -m 7 user1 변경 후 7일 이내 재변경 불가
-W 경고일 chage -W 7 user1 만료 7일 전 경고
-E 계정 만료일 chage -E 2025-12-31 user1 계정 만료일 설정
-d 마지막 변경일 chage -d 0 user1 즉시 비밀번호 변경 강제 (다음 로그인 시 변경 요구)

4. 마무리

  • 비밀번호 만료는 보안 정책 준수를 위한 필수 설정임.
  • /etc/shadow → 실제 설정값 저장
  • /etc/login.defs → 기본 정책 정의
  • chage 명령어 → 확인 및 변경 가능
  • 주기적 비밀번호 변경 및 경고일 설정으로 서버 보안 강화 가능