Il file di registro che "sudo last" accede?

3

Il comando bash last (needs sudo) stampa i log, che contengono informazioni su quando diversi utenti si collegano / escono dalla shell.

Ho cercato il file che memorizza queste informazioni, a cui last avrebbe accesso. Ho controllato /var/log/system.log e altri file in /var/log .

Ho anche cercato ovunque su internet e non trovo la posizione.

Tuttavia, ho confermato che il file è all'interno di /var/log , perché quando ho fatto rm -rf /var/log/ , sudo last ha mostrato output vuoto fino alla prossima volta che ho effettuato il login.

Quale file è? Grazie.

(Sto usando OS X Mavericks se fa la differenza.)

    
posta thepiercingarrow 05.06.2016 - 02:37
fonte

3 risposte

1

last deriva il suo output esaminando i file * .launchd.events. *. stats in /private/var/log/com.apple.launchd .

La rimozione dei file di solito limita l'output last all'ultimo accesso dopo il riavvio. Di conseguenza, deve esistere qualche ulteriore file / database / struttura in memoria.

La rimozione dei file non funziona in modo coerente.

I file delle statistiche nelle rispettive cartelle utente (ad es. com.apple.launchd.peruser.0 o com.apple.launchd.peruser.501) sono irrilevanti!

    
risposta data 05.06.2016 - 03:32
fonte
2

Il file (eseguibile) in questione è /var/run/syslog

Se eseguiamo man last otteniamo

SEE ALSO
     lastcomm(1), utmpx(5), ac(8)

Possiamo trovare utmpx in /var/run directory Utmpx è un database di contabilità utente di corrente informazioni di accesso. La chiave qui è questa affermazione trovata nella % di pagina diman per utmpx

Traditionally, separate files would be used to store the running log of the logins and logouts (wtmpx), and the last login of each user (lastlogx). With the availability of the Apple system log facility asl(3), these separate files can be replace with log entries, which are automatically generated when utmpx entries are written.

Quindi, utmpx sta generando voci di log nella funzione syslog di OS X. Esegui il seguente comando:

syslog | grep 'login\['

E otterrai un elenco di tutti gli eventi di accesso dal momento che il sistema operativo è stato installato (troncato)

May 26 17:03:12 Allans-iMac login[5572] <Notice>: USER_PROCESS: 5572 ttys003
May 26 17:26:15 Allans-iMac login[5572] <Notice>: DEAD_PROCESS: 5572 ttys003
May 27 10:10:57 Allans-iMac login[5196] <Notice>: DEAD_PROCESS: 5196 ttys002
May 27 10:10:58 Allans-iMac login[4741] <Notice>: DEAD_PROCESS: 4741 ttys001
May 27 10:11:18 Allans-iMac login[6253] <Notice>: USER_PROCESS: 6253 ttys001
May 27 10:25:45 Allans-iMac login[6281] <Notice>: USER_PROCESS: 6281 ttys002
May 27 17:17:15 Allans-iMac login[6281] <Notice>: DEAD_PROCESS: 6281 ttys002
May 27 17:17:21 Allans-iMac login[6253] <Notice>: DEAD_PROCESS: 6253 ttys001
May 28 13:40:06 Allans-iMac login[7123] <Notice>: USER_PROCESS: 7123 ttys001
May 30 09:11:25 Allans-iMac login[1213] <Notice>: USER_PROCESS: 1213 ttys000
May 30 09:11:25 Allans-iMac login[1220] <Notice>: USER_PROCESS: 1220 ttys001
May 30 09:23:19 Allans-iMac login[1220] <Notice>: DEAD_PROCESS: 1220 ttys001
May 30 09:23:19 Allans-iMac login[1213] <Notice>: DEAD_PROCESS: 1213 ttys000
May 30 20:57:16 Allans-iMac login[1695] <Notice>: USER_PROCESS: 1695 ttys000
May 30 20:57:39 Allans-iMac login[1695] <Notice>: DEAD_PROCESS: 1695 ttys000
May 31 22:33:30 Allans-iMac login[2592] <Notice>: USER_PROCESS: 2592 ttys000
Jun  3 16:46:28 Allans-iMac login[2592] <Notice>: DEAD_PROCESS: 2592 ttys000
Jun  4 20:44:43 Allans-iMac login[1789] <Notice>: USER_PROCESS: 1789 ttys000

Per ulteriori informazioni sull'account utente, possiamo usare il comando ac

L'esecuzione di man ac ci dà

    NAME
     ac -- display connect-time accounting

SYNOPSIS
     ac [-d] [-p] [-w file] [users ...]

DESCRIPTION
     A record of individual login and logout times are written to the system log by login(8) and launchd(8),
     respectively.  The program ac examines these records and writes the accumulated connect time (in deci-
     mal hours) for all logins to the standard output.

Quindi, in base a man ac le informazioni di accesso vengono scritte nel registro di sistema. L'esecuzione di ac ci dà "Se non viene fornito alcun argomento, ac mostra la quantità totale di tempo di accesso per tutti gli account attivi sul      Sistema ".

$ ac
total     2477.23

Per scomunicare per utente:

$ ac -p
testguy      0.04
_mbsetupuser     0.39
allan     2476.74
root         0.07
total     2477.24
    
risposta data 05.06.2016 - 03:10
fonte
0

last utilizza /var/log/asl/* file.

Firing all'interno di una finestra Terminal :

/usr/bin/sudo opensnoop

e in un altro:

last

ti mostrerà questo in dettaglio.

Se vuoi leggerlo dalla fonte, eccolo qui:

http://opensource.apple.com/release/os-x-1011/

Download:

Libc-1081.1.3

estrai questo file tar compresso:

tar fjx Libc-1081.1.3.tar.gz

e leggi:

Libc-1081.1.3/gen/utmpx-darwin.c
    
risposta data 16.08.2016 - 15:35
fonte

Leggi altre domande sui tag