지정된 날짜 대신 일수로 비밀번호 만료일 재설정

지정된 날짜 대신 일수로 비밀번호 만료일 재설정

passwd 또는 chage 명령을 사용하여 명령이 실행된 후 90일 후에 비밀번호가 만료되도록 하는 방법이 있습니까?

다음과 같이 날짜별로 할 수 있다는 것을 알고 있습니다.

chage -E "2014-07-31" userid

그런데 특정 날짜가 아닌 숫자로 이를 수행할 수 있는 방법을 찾고 있습니다.

감사합니다!

답변1

chage기본적으로 날짜 차이를 처리하지 않지만 쉘이 이를 처리하도록 하고 chageYYYY-MM-DD 날짜 표현 대신 1970-01-01 이후의 일 수를 제공할 수 있습니다.

chage -E $(( $(date +%s)/3600/24 + 90 )) userid

(90을 임의의 일수로 바꾸십시오.)


유효기간 변경비밀번호대신에계정조금 까다롭습니다. 실제로 비밀번호의 실제 만료 날짜는 설정할 수 없으며 최대 기간(사용 chage -M)만 설정할 수 있습니다.

지금부터 90일 후에 비밀번호가 만료되는 데 필요한 최대 수명을 계산하려면 몇 가지 단계를 더 건너뛰어야 합니다.

userid=johndoe
pwd_age=$(grep "^$userid:" /etc/shadow | cut -d: -f 3)
now=$(( $(date +%s) / 3600 / 24 ))
age_at_expiry_date=$(( $now + 90 - $pwd_age ))
chage $userid -M $age_at_expiry_date

다소 복잡해도 괜찮다면 한 줄로 결합할 수도 있습니다.

userid=johndoe chage $userid -M $(( $(date +%s) / 3600 / 24 + 90 - $(grep "^$userid:" /etc/shadow | cut -d: -f 3) ))

비밀번호가 마지막으로 변경된 날짜를 덮어쓰고 싶다면 다음을 수행하세요.

chage -M 90 -d $(date +%F) userid

답변2

RHEL 6.8

#set passwd max no days = 30
passwd username -x30

관련 정보