¿El archivo de registro al que 'sudo last' accede?

2

El comando bash last (necesita sudo) imprime los registros, que contienen información sobre cuándo diferentes usuarios inician sesión / salen del shell.

He estado buscando el archivo que almacena esta información, a la que last tendría acceso. He comprobado /var/log/system.log y otros archivos dentro de /var/log .

También he buscado en todas partes en Internet y no puedo encontrar la ubicación.

Sin embargo, he confirmado que el archivo está dentro de /var/log , porque cuando lo hice rm -rf /var/log/ , sudo last mostró una salida vacía hasta la próxima vez que inicie sesión.

¿Qué archivo es? Gracias.

(Estoy usando OS X Mavericks si hace una diferencia.)

    
pregunta thepiercingarrow 05.06.2016 - 02:37

3 respuestas

1

last deriva su salida al examinar los archivos * .launchd.events. *. stats en /private/var/log/com.apple.launchd .

La eliminación de los archivos generalmente restringe la salida last al último inicio de sesión después de reiniciar. En consecuencia, debe existir algún archivo adicional / base de datos / estructura en memoria.

La eliminación de los archivos no funciona de manera consistente.

Los archivos de estadísticas en las carpetas de usuario respectivas (por ejemplo, com.apple.launchd.peruser.0 o com.apple.launchd.peruser.501) son irrelevantes.

    
respondido por el klanomath 05.06.2016 - 03:32
2

El archivo (ejecutable) en cuestión es /var/run/syslog

Si ejecutamos man last obtenemos

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

Podemos encontrar utmpx en el /var/run directory Utmpx es una base de datos de contabilidad de usuarios con información de inicio de sesión actual . La clave aquí es esta declaración que se encuentra en página man para utmpx

  

Tradicionalmente, se usarían archivos separados para almacenar el registro en ejecución   de los logins y logouts (wtmpx),        y el último inicio de sesión de cada usuario (lastlogx). Con la disponibilidad de la facilidad de registro del sistema Apple        asl (3), estos archivos separados se pueden reemplazar por entradas de registro, que se generan automáticamente cuando        Se escriben las entradas de utmpx.

Entonces, utmpx está generando entradas de registro a la función syslog del OS X. Ejecute el siguiente comando:

syslog | grep 'login\['

Y obtendrá una lista de todos los eventos de inicio de sesión desde que se instaló (truncó) el sistema operativo

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

Para obtener información adicional sobre la contabilidad de usuarios, podemos usar el comando ac

La ejecución de man ac nos da

    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.

Por lo tanto, de acuerdo con man ac , la información de inicio de sesión se escribe en el registro del sistema. La ejecución de ac nos da "Si no se proporcionan argumentos, ac muestra la cantidad total de tiempo de inicio de sesión para todas las cuentas activas en el      sistema. "

$ ac
total     2477.23

Para desglosar por usuario:

$ ac -p
testguy      0.04
_mbsetupuser     0.39
allan     2476.74
root         0.07
total     2477.24
    
respondido por el Allan 05.06.2016 - 03:10
0

last está usando /var/log/asl/* archivos.

Activando dentro de una ventana Terminal :

/usr/bin/sudo opensnoop

y en otra:

last

le mostrará esto en detalle.

Si desea leerlo desde la fuente, aquí está:

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

descargar:

Libc-1081.1.3

extraer este archivo tar comprimido:

tar fjx Libc-1081.1.3.tar.gz

y lea:

Libc-1081.1.3/gen/utmpx-darwin.c
    
respondido por el daniel Azuelos 16.08.2016 - 15:35

Lea otras preguntas en las etiquetas