리눅스에 ssh 등으로 접속하다가 password 기간 만료로 새로 변경해야 되는 경우가 있다.

이때 임시로 password 를 변경하고, 다시 passwd 명령으로 변경하려면 다음과 같은 에러와 함께 변경이 안되는 경우가 있다.

(current) UNIX password: 
You must wait longer to change your password
passwd: Authentication token manipulation error

 

접속된 사용자가 passwd 명령에 대한 권한이 없는등 여러가지 문제가 있을 수 있는데,

chage 명령으로 사용자 password 등에 관련된 정보를 한번 확인해보면 문제를 파악 할 수 있는 경우가 있다.

Usage: chage [options] LOGIN

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

 

자신의 계정 정보를 확인해본다.

chage -l leechwin
Last password change				        : 10월 10, 2019
Password expires					:  1월 08, 2020
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 7
Maximum number of days between password change		: 90
Number of days of warning before password expires	: 7

 

계정 정보에 Minimum number of days between password change 부분이 7로 되어있는데 passwd 로 password 를 바꾼뒤에 7일뒤에 다시 passwd 로 password 를 바꿀 수 있다는 의미이다.

passwd 로 password 를 무한정 바꾸고 싶다면 다음 명령어로 해당 정보를 0 으로 설정 하면 된다.(단 root 계정으로 변경 실행해야 한다.)

# chage -d 0 leechwin

 

혹은 "/etc/shadow" 파일에 user 정보를 직접 수정가능하다.

 

Reference

Posted by leechwin
,