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)?


¿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

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.


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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.