パスワード有効期限が切れる時間について(Linux)

前書き

Linuxにおいて、アカウント(ユーザ)のパスワード有効期限が切れる時間について書きたいと思います。

Linuxのユーザのパスワードに有効期限を設定することができますが、その有効期限は何時に切れるかご存じでしょうか。

23:59や00:00ではありません

それを本記事では解説していきたいと思います。環境はCent OS 7を使用しています。

別件ですが、パスワード有効期限の設定方法と解除方法については、下の記事を見ていただければと思います。

【まとめ】Linuxユーザロックの種類と解除方法

 

タイムゾーンと日付の切り替わり

パスワード有効期限が切れる時間を説明するためには、Linuxのタイムゾーンと、日付の切り替わりについて理解する必要があります。

タイムゾーンについて

Linuxインストール時にも指定しますが、Linuxにはタイムゾーンがあります。「timedatectl」コマンドで確認します。

上の場合、タイムゾーンはJSTとなっていることが確認できます。

(参考)Linuxインストール時にタイムゾーンを指定する画面

 

JSTとUTC

Linuxインストール時にタイムゾーンを「Asia/Tokyo」と指定してインストールした場合は、タイムゾーンはJSTになります。

ご存じだと思いますが、「JST=UTC+9時間」となります。例えば、日本(JTC)で21:00は、UTCで12:00(21:00-9:00)となります。

 

日付の切り替わり

Linuxの日付の切り替わりは、UTCで行われています。

つまり、UTCの0:00でLinuxの日付の切り替わりが行われるのでJTCのタイムゾーンでいうと、9:00日付が切り替わることになります。

 

パスワード有効期限が切れる時間

さて、本題のパスワード有効期限が切れる時間についてご説明します。

お察しかと思いますが、パスワード有効期限はJTCでは9:00に有効期限が切れます。

繰り返し不要かと思いますが、UTCでいえば0:00に有効期限が切れます。

 

パスワード変更を行った時間も重要

ここで把握しておかなければいけないことがあります。

パスワード有効期限を把握するには、パスワードを変更した時間も重要になってきます。

パスワード変更を行った時間が、Linuxの日付の切り替わりの前後によって、有効期限が変わってきます。

例えば、4/1 9:00(JST)にパスワード変更を行うことは、「4/1 9:00 ~ 4/2 8:59」の間にパスワード変更を行うことと同義になります。日付の切り替わりが9:00だからです。

UTCにするとより理解が深まります。「4/1 0:00 ~ 4/1 23:59」(UTC)でパスワード変更することは、4/1のパスワード変更となります。これはすんなり理解できると思います。

そしてこれをJTCにすると、「4/1 9:00 ~ 4/2 8:59」(JST)となるわけです。

 

図を用いて有効期限が切れる時間を説明

ここで例を用いて図で説明したいと思います。

パスワード有効日数は「3日」とします。

4/1にパスワード変更(JTCでいうと「4/1 9:00 ~ 4/2 8:59」、UTCでいうと「4/1 0:00 ~ 4/1 23:59」)した場合、いつ有効期限が切れるでしょうか?

4/5 9:00」に有効期限が切れます。下の図を見てください。

 

もうひとつ図で例を示したいと思います。4/1のパスワード変更でも、~8:59までの変更であったら3/31付けのパスワード変更となるため、4/4 9:00に有効期限が切れます。

 

検証

実際に朝9:00に切れるかテスト

それでは実際にユーザのパスワードが朝の9:00に切れるのか、検証したいと思います。

3/23の18:00(日本時間)ごろ「user1」ユーザのパスワードを新しいものへ更新しました。(これは、「3/23 9:00 ~ 3/24 8:59」のパスワード変更と同義です)

パスワード有効日数はここでは「3日」のため、3/26がパスワード有効期限の最終日です。(「3/26 9:00 ~ 3/27 8:59」が有効期限の最終日です)

つまり、「3/27 9:00」の有効期限が切れるはずです。

仮定どおり3/27 9:00(JST)に有効期限が切れました。

 

タイムゾーンを変更してテスト

タイムゾーンを変更してテストしてみます。

ここでは、「Europe/Sophia」にしてみました。ちなみにUTC+2:00になります。

EET=UTC+2時間のため、朝の2時にパスワード有効期限が切れるはずです。

ここでは「3/24  2:00 ~ 3/25  1:59」の間にパスワード変更を実施して、パスワード有効期限3日で設定します。

3/27 2:00 ~ 3/28 1:59」が有効期限の最終日となるので、3/28 2:00に有効期限が切れるはずです。

こちらも仮定通りとなりました。

 

まとめ

最後までお読みいただきありがとうございました。

簡単にまとめると、パスワード有効期限UTCで実施されているということです。日付の切り替わりUTCになっているということです。

なので、Linuxに設定しているタイムゾーンUTC何時間ずれているかが把握できていれば、有効期限が切れる(日付が切り替わる)時間を導き出せます。

 

参考サイト

【設定確認から変更方法まで】Linuxでのタイムゾーンの扱い方