Se você olhar para o useradd. fonte c existe esse bit que mostra o seguinte.
Supondo que a opção de linha de comando --no-log-init
foi definida, as funções faillog_reset
e lastlog_reset
são chamadas:
if ((!lflg) && (getpwuid (user_id) == NULL)) {
faillog_reset (user_id);
lastlog_reset (user_id);
Quando lastlog_reset
é chamado, esse bit modificará o arquivo lastlog
:
fd = open (LASTLOG_FILE, O_RDWR);
if ( (-1 == fd)
|| (lseek (fd, offset_uid, SEEK_SET) != offset_uid)
|| (write (fd, &ll, sizeof (ll)) != (ssize_t) sizeof (ll))
|| (fsync (fd) != 0)
|| (close (fd) != 0)) {
O texto acima mostra o arquivo lastlog
sendo aberto para leitura & write ( O_RDWR
) seguido por uma instrução if
que garante que o arquivo foi aberto com sucesso seguido por um seek dentro do arquivo em um local e write
das informações do novo usuário no arquivo. Depois o arquivo é fechado.
Com base nisso, eu suponho que essa opção controla se o UID de um usuário é adicionado ao arquivo lastlog
"database" e nada mais.