/ etc / shadow Datum der letzten Kennwortänderung - UTC oder Ortszeit?

4

man 5 shadow gibt die folgende Beschreibung des dritten Feldes in jeder Zeile an:

Das Datum der letzten Kennwortänderung, ausgedrückt als Anzahl der Tage seit dem 1. Januar 1970.

Der Wert 0 hat eine besondere Bedeutung. Dies bedeutet, dass der Benutzer sein Passwort ändern soll, wenn er sich das nächste Mal im System anmeldet.

Ein leeres Feld bedeutet, dass die Kennwortalterungsfunktionen deaktiviert sind.

Bezieht sich dies auf Zeiten in UTC oder der lokalen Zeitzone? Insbesondere wollen , wenn ich vergleichbare Zahlen mit so etwas wie zu berechnen $(( $(date +%s) / 86400 )), muss ich passieren datedie -uOption?

ich und
quelle

Antworten:

8

Der Zeitstempel "Sekunden seit 1970" wird in den meisten Fällen speziell als UTC definiert. Insbesondere können Sie feststellen, dass date +%sdas gleiche Ergebnis wie gibt date -u +%s.

Die entsprechende Zeile, in der dies in den Hilfsprogrammen für Schattenkennwörter festgelegt ist, lautet "

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

Welches würde es UTC machen. SCALE ist als 86400 definiert (außer über ein bestimmtes ifdef, bei dem ich nicht genau nachvollziehen kann, welche Umstände definiert werden müssen).

Random832
quelle
3

Mit "Tagen" sind Intervalle von 86.400 Sekunden gemeint. Mit "1. Januar 1970" ist 00:00:00 UTC gemeint. Dies ist im Grunde genommen die Standard- UNIX-Zeit , auch als POSIX-Zeit bekannt.

David Schwartz
quelle