passwdまたはchageコマンドを使用してコマンドが実行されてから90日後にパスワードが期限切れになるようにする方法はありますか?
次のように日付別にできることがわかります。
chage -E "2014-07-31" userid
しかし、特定の日付ではなく数字でこれを行う方法を探しています。
ありがとうございます!
答え1
chage
デフォルトでは日付差を処理しませんが、シェルにそれを処理させ、chage
YYYY-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
多少複雑でも大丈夫なら、1行にまとめることもできます。
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