/ etc / shadow data da última alteração de senha — UTC ou hora local?

4

man 5 shadow fornece a seguinte descrição do terceiro campo em cada linha:

The date of the last password change, expressed as the number of days since Jan 1, 1970.

The value 0 has a special meaning, which is that the user should change her pasword the next time she will log in the system.

An empty field means that password aging features are disabled.

Isso se refere a horários no UTC ou no fuso horário local? Em particular, se eu quiser calcular números comparáveis usando algo como $(( $(date +%s) / 86400 )) , preciso passar date a opção -u ?

    
por me_and 24.10.2011 / 17:42

2 respostas

8

O timestamp "segundos desde 1970" é especificamente definido como UTC na maioria dos usos. Em particular, você pode notar que date +%s dá o mesmo resultado que date -u +%s .

A linha relevante em que isso é definido nos utilitários de senha de sombra é "

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

O que tornaria o UTC. SCALE é definido como 86400 (exceto por meio de um ifdef específico que não consigo rastrear quais circunstâncias causam a definição)

    
por 24.10.2011 / 18:27
3

Por "dias", isso significa 86.400 segundos de intervalo. Por "1 de janeiro de 1970", significa 00:00:00 UTC. Este é basicamente o tempo do UNIX , também conhecido como hora POSIX.

    
por 24.10.2011 / 23:26