Comando "Último": ¿Cómo mostrar el último inicio de sesión de usuario?

19

Como sé, el lastcomando muestra inicios de sesión recientes de todos los usuarios. Pero mi PC (CentOS) se ha utilizado durante aproximadamente un año, y hay muchos usuarios registrados. Traté de usar el lastcomando, pero solo se mostró desde junio de 2013 hasta septiembre de 2013.

Mi pregunta es: ¿cómo puedo mostrar los últimos usuarios que han iniciado sesión recientemente, por ejemplo (diciembre de 2013 a enero de 2014)?

Thomas
fuente
¿Podría verificar si el /var/log/wtmparchivo está presente y su última hora de cambio usando stat?
mkc
Además, tenga en cuenta que las últimas entradas en la salida del último comando estarían en la parte superior.
mkc
de todos modos para llegar al fondo?
Thomas
1
Probarlast | tac
mkc
1
solo haz una estadística:stat /var/log/wtmp
mkc

Respuestas:

15

lastlee de un archivo de registro, generalmente /var/log/wtmpe imprime las entradas de intentos exitosos de inicio de sesión realizados por los usuarios en el pasado. El resultado es tal que la última entrada de los usuarios registrados aparece en la parte superior. En su caso, tal vez no se notó debido a esto.

Para verificar cuándo se /var/log/wtmpescribió el archivo por última vez, puede usar el statcomando:

stat /var/log/wtmp

Para imprimir la salida en reversa, puede canalizar la salida de último al GNU tac(opuesto a cat) de la siguiente manera:

last | tac
mkc
fuente
16

También puede usar el comando lastlogcommand en Linux. Le brinda controles más granulares en cuanto a rangos de fechas cuando busca en los registros de inicios de sesión de los usuarios.

extracto de la página del manual de lastlog

   lastlog - reports the most recent login of all users or of a given user

Ejemplo

Para averiguar los usuarios que han iniciado sesión en un sistema en los últimos 100 días.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Esto muestra que las últimas veces que estos usuarios iniciaron sesión en este sistema. El rango de tiempo muestra los últimos 100 días. Antes de hoy ( -b 0) y después de hace 100 días ( -t 100).

También puede mostrar a todos los usuarios omitiendo cualquier rango y simplemente viendo cada usuario que haya iniciado sesión y la última vez que iniciaron sesión.

slm
fuente
0

Puedes probar este script:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done
Stephen Kitt
fuente
1
Bienvenido a Unix.SE. ¿Podría explicar qué ventajas tiene este enfoque sobre las respuestas existentes, si las hay?
Stephen Kitt
este script proporcionará la última marca de tiempo de registro para todos los usuarios en UNIX (AIX)
Gracias por la info; Por favor, editar su respuesta a mencionar eso. Tenga en cuenta también que la pregunta es sobre CentOS, no AIX.
Stephen Kitt