/etc/shadow 最後のパスワード変更日 - UTC時間かローカル時間ですか?

/etc/shadow 最後のパスワード変更日 - UTC時間かローカル時間ですか?

man 5 shadow各行の 3 番目のフィールドの説明を提供します。

パスワードが最後に変更された日付で、1970年1月1日以降の日数で表示されます。

値0は特別な意味を持ちます。つまり、ユーザーは次回システムにログインするときにパスワードを変更する必要があります。

空のフィールドは、パスワードの有効期限が無効になっていることを示します。

これはUTC時間を意味しますか、またはローカルタイムゾーンを意味しますか?特に、同様の方法を使用して比較可能な数値を計算するには、そのオプションを$(( $(date +%s) / 86400 ))渡す必要がありますか?date-u

答え1

ほとんどの使用では、「1970年以降の秒」タイムスタンプは特にUTCとして定義されています。特にdate +%s同じ結果が得られることがわかりますdate -u +%s

シャドウパスワードユーティリティに設定されている関連ラインは、

nsp->sp_lstchg = (long) time ((time_t *) 0) / SCALE;

これはUTCになります。 SCALEは86400と定義されています(特定のifdefを介して以外の定義された原因を追跡することはできません)。

答え2

「日」は86,400秒の間隔を表します。 「1970年1月1日」は00:00:00 UTCを意味します。これは基本的に標準ですUnix Time、POSIX時間とも呼ばれます。

関連情報