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時間とも呼ばれます。