GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar los últimos usuarios que iniciaron sesión en Linux

En este tutorial, veremos cómo encontrar los últimos usuarios que iniciaron sesión en Linux usando last , lastb y lastlog comandos con ejemplos.

Introducción

Como administrador del sistema Linux, debe verificar periódicamente la fecha y la hora de inicio de sesión de los usuarios en su servidor Linux. Le brinda algunos detalles útiles, como cuántos usuarios están activos, cuántos usuarios están inactivos y cuándo inician sesión y por cuánto tiempo, etc.

Si algunas cuentas de usuario no se han utilizado durante mucho tiempo, simplemente puede bloquearlas si ya no las necesita. También puede usar las últimas fechas de inicio de sesión cuando audite sus servidores Linux e investigue qué usuario podría haber causado el problema.

Afortunadamente, el sistema operativo GNU/Linux incluye los comandos triples, a saber, last , lastb y lastlog para mostrar las fechas de inicio de sesión de los usuarios recientes.

1. Mostrar la lista de los últimos usuarios que iniciaron sesión en Linux con el último comando

Como su nombre lo dice, el last El comando se usa para ver los últimos usuarios que iniciaron sesión en sistemas Linux y similares a Unix. Lee a través del /var/log/wtmp y encuentra todos los usuarios conectados y desconectados desde que se creó ese archivo. También puede enumerar las fechas de inicio de sesión recientes de un usuario específico e incluso encontrar quién reinició el sistema Linux con la ayuda de last comando.

Tenga en cuenta que su sistema solo registra información en el wtmp expediente. Si este archivo no está disponible por algún motivo, simplemente créelo con touch comando como a continuación:

$ sudo touch /var/log/wtmp

Ahora averigüemos las fechas y horas de inicio de sesión recientes con last comando.

Para mostrar los últimos inicios de sesión, su duración y otra información en su sistema Linux, simplemente ejecute:

$ last

Salida de muestra:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running
reboot   system boot  5.4.0-48-generic Fri Nov 20 10:13 - 11:44  (01:31)
.
.
.
reboot   system boot  5.4.0-33-generic Wed Jul  8 08:49 - 11:41  (02:52)
ostechni web console                   Mon Jul  6 08:19 - 08:20  (00:00)
ostechni pts/2        192.168.225.37   Mon Jul  6 08:14 - 08:30  (00:15)
ostechni pts/0        192.168.225.37   Mon Jul  6 07:41 - 12:27  (04:45)
reboot   system boot  5.4.0-33-generic Mon Jul  6 07:21 - 12:27  (05:06)
ostechni pts/3        192.168.225.37   Sat Jul  4 12:01 - 12:12  (00:10)
ostechni pts/2        192.168.225.37   Sat Jul  4 11:14 - 13:01  (01:46)
ostechni pts/0        192.168.225.37   Sat Jul  4 07:55 - 13:01  (05:05)
reboot   system boot  5.4.0-33-generic Sat Jul  4 07:53 - 13:03  (05:09)
ostechni tty1                          Fri May 29 10:07 - down   (00:00)
reboot   system boot  5.4.0-33-generic Fri May 29 10:06 - 10:07  (00:01)
ostechni pts/0        192.168.225.37   Fri May 29 09:36 - 10:06  (00:29)
ostechni tty1                          Fri May 29 09:36 - down   (00:29)
reboot   system boot  5.4.0-31-generic Fri May 29 09:35 - 10:06  (00:30)
ostechni tty1                          Sun May 24 13:17 - down   (00:02)
reboot   system boot  5.4.0-31-generic Sun May 24 13:16 - 13:20  (00:03)

wtmp begins Sun May 24 13:16:52 2020

Como puede ver en el resultado anterior, el último comando muestra los siguientes detalles de inicios de sesión recientes:

  • Nombre del usuario. Si algún usuario todavía está conectado, también mostrará esos detalles.
  • Tipo de dispositivo terminal (por ejemplo, tty o pts) en el que tuvo lugar la sesión.
  • Dirección IP de origen o nombre de host desde el que el usuario inició sesión.
  • La marca de fecha y hora de inicio de sesión (es decir, las horas de inicio y finalización de la sesión de inicio de sesión).
  • La duración total de la sesión.
  • La última línea indica la fecha y la hora de la primera sesión registrada en el wtmp archivo de registro.

En el resultado anterior, es posible que haya notado que hay una entrada de inicio de sesión de un usuario especial llamado reboot . El last El comando mantiene los registros de este usuario cada vez que se inicia la computadora.

Cuando ejecutamos last comando sin ninguna opción, mostrará la salida de registro completa. Tiene muchas opciones para filtrar, formatear y limitar la salida según su gusto. He incluido ejemplos de las opciones más comunes.

1.1. Limite la salida a un usuario específico

Como ya se dijo, el last El comando enumera todos los inicios de sesión recientes registrados en el wtmp expediente. Si desea mostrar los inicios de sesión recientes de un usuario específico (es decir, ver todos los inicios de sesión de un usuario específico), por ejemplo, ostechnix , el comando sería:

$ last ostechnix

Salida de muestra:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
[...]

También puede especificar varios nombres de usuario separados por comas como se muestra a continuación:

$ last ostechnix sk

1.2. Limite la salida a tty o pts específicos

El last El comando mantiene el registro del tipo de dispositivo terminal (por ejemplo, tty o pts) en el que tuvo lugar la sesión.

Digamos, por ejemplo, que los usuarios pueden haber iniciado sesión en la máquina Linux de forma local o mediante ssh. Si desea restringir la salida a un tty específico , simplemente ejecute:

$ last tty1

Salida de muestra:

ostechni tty1                          Thu Jan  7 08:29   still logged in
ostechni tty1                          Wed Jan  6 11:00 - down   (02:31)
ostechni tty1                          Fri Nov 20 11:52 - down   (00:38)
[...]

Los nombres de ttys se pueden abreviar. Por ejemplo, puede ejecutar last 1 en lugar de last tty1 .

Del mismo modo, para enumerar solo pts inicios de sesión de las sesiones, ejecute:

$ last pts/0
ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        192.168.225.37   Wed Jan  6 11:02 - 11:02  (00:00)
[...]

También puede especificar varios nombres de usuario con ttys como a continuación:

$ last ostechnix sk pts/0 tty1

1.3. Limite la salida a un número específico de líneas

El wtmp El archivo de registro podría tener una gran cantidad de entradas. Si desea restringir la salida de last comando a cierto número de líneas, use -n marca como a continuación:

$ last -n 5

O,

$ last -5

El comando anterior solo mostrará las 5 líneas en la salida:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30   still logged in
ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running
ostechni pts/0        192.168.225.37   Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        192.168.225.37   Wed Jan  6 11:02 - 11:02  (00:00)

wtmp begins Sun May 24 13:16:52 2020

1.4. Mostrar nombre de host en lugar de dirección IP

Por defecto, last El comando muestra la IP de origen desde la que el usuario inició sesión. Si desea mostrar el nombre de host en lugar de la dirección IP, use -d (o --dns ) opción:

$ last -d -5

También puede mostrar los nombres de usuario completos y los nombres de dominio en la salida con -w (o --fullnames ) opción.

1.5. Ocultar nombre de host y dirección IP

Para suprimir el nombre de host o el campo IP, use -R opción.

$ last -5 -R

Salida de muestra:

ostechni pts/0        Thu Jan  7 08:30   still logged in
ostechni tty1         Thu Jan  7 08:29   still logged in
reboot   system boot  Thu Jan  7 08:20   still running
ostechni pts/0        Wed Jan  6 11:02 - 13:31  (02:28)
sk       pts/0        Wed Jan  6 11:02 - 11:02  (00:00)

wtmp begins Sun May 24 13:16:52 2020

1.6. Mostrar registros de inicio de sesión de usuario en un momento específico

El -p (o --present ) se usa para encontrar quién inició sesión en ese momento o en un momento específico.

Por ejemplo, ejecute el siguiente comando para enumerar los últimos usuarios que iniciaron sesión a las 8:30 de hoy:

$ last -p 08:30

Salida de muestra:

ostechni tty1                          Thu Jan  7 08:29   still logged in
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20   still running

wtmp begins Sun May 24 13:16:52 2020

Para enumerar quién está conectado actualmente (es decir, en el momento de ejecutar este comando, ejecute:

$ last -p now

1.7. Mostrar usuarios registrados dentro de un intervalo de tiempo específico

El last El comando tiene dos opciones, a saber, -s (--since ) y -t (--until ) para mostrar los usuarios registrados dentro de un período de tiempo específico. El -s La opción se usa para mostrar el estado de los inicios de sesión desde el tiempo especificado y el -t La opción se utiliza para mostrar el estado de los inicios de sesión hasta el momento especificado.

Por ejemplo, si desea mostrar los últimos inicios de sesión que tuvieron lugar desde 2021-01-07 al 2021-01-11 , el comando es:

$ last -s 2021-01-07 -t 2021-01-11

Salida de muestra:

ostechni pts/0        192.168.225.37   Thu Jan  7 08:30 - 13:16  (04:46)
ostechni tty1                          Thu Jan  7 08:29 - down   (04:47)
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20 - 13:16  (04:56)

wtmp begins Sun May 24 13:16:52 2020

Para ver los inicios de sesión recientes de ayer hasta hoy , ejecuta:

$ last -s yesterday -t today

Si desea enumerar solo los registros de inicio de sesión desde el 7 de enero de 2021 hasta la fecha, ejecute:

$ last -s 2021-01-07
ostechni pts/0        192.168.225.37   Mon Jan 11 06:39   still logged in
reboot   system boot  5.4.0-59-generic Mon Jan 11 06:37   still running
ostechni pts/0        192.168.225.37   Thu Jan  7 08:30 - 13:16  (04:46)
ostechni tty1                          Thu Jan  7 08:29 - down   (04:47)
reboot   system boot  5.4.0-53-generic Thu Jan  7 08:20 - 13:16  (04:56)

wtmp begins Sun May 24 13:16:52 2020

1.8. Mostrar los últimos usuarios que iniciaron sesión con fecha y hora completas

El -F (--fulltimes ) se utiliza para mostrar la fecha y hora completas de inicio y cierre de sesión en last salida del comando.

$ last -5 -F

Salida de muestra:

ostechni pts/0        192.168.225.37   Mon Jan 11 06:39:29 2021   still logged in
[...]

1.9. Mostrar nombre de host en la última columna

El -a (--hostlast ) se usa para mostrar la última columna del nombre de host para evitar el truncamiento.

$ last -d -a
ostechni pts/0        Mon Jan 11 06:39   still logged in    ostechnix
[...]

1.10. Ver los últimos registros de inicio de sesión del pseudo usuario "reiniciar"

Como mencioné anteriormente, el último comando mantiene el registro de un pseudo usuario especial llamado "reiniciar" y "apagar".

Para ver los últimos detalles de inicio de sesión de los usuarios "reiniciar" y "apagar", use los siguientes comandos:

$ last reboot
$ last shutdown

2. Mostrar intentos de inicio de sesión fallidos usando lastb en Linux

El lastb es igual que last comando, pero solo enumera todos los intentos de inicio de sesión incorrectos. Obtiene los detalles de inicio de sesión fallidos de /var/log/btmp archivo.

Tenga en cuenta que su sistema solo registra información en el btmp archivo si está presente. Si este archivo no está disponible por algún motivo, simplemente créelo con touch comando como a continuación:

$ sudo touch /var/log/btmp

Ahora podemos mostrar los intentos de inicio de sesión fallidos usando el comando lastb como se muestra a continuación:

$ sudo lastb

Salida de muestra:

UNKNOWN  tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
sk       tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
UNKNOWN  tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
sk       tty1                          Mon Jan 11 07:51 - 07:51  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
ostechni ssh:notty    192.168.225.37   Mon Jan 11 07:49 - 07:49  (00:00)
UNKNOWN  tty1                          Wed Jan  6 10:59 - 10:59  (00:00)

btmp begins Wed Jan  6 10:59:57 2021

Los comandos anteriores enumeran todos los intentos de inicio de sesión fallidos de todos los usuarios en el sistema Linux. También muestra los intentos fallidos de inicio de sesión que se realizaron a través de SSH.

3. Encuentre los últimos usuarios que iniciaron sesión en Linux con el comando lastlog

El último registro El comando muestra el inicio de sesión más reciente de todos los usuarios o de un usuario específico en sistemas operativos Linux y similares a Unix. Recupera la lista de los últimos usuarios que iniciaron sesión de /var/log/lastlog archivo y muestra el resultado en la salida estándar.

Para mostrar el inicio de sesión más reciente de todos los usuarios, ejecute:

$ lastlog

Salida de muestra:

Username         Port     From             Latest
root                                       **Never logged in**
daemon                                     **Never logged in**
bin                                        **Never logged in**
[...]
systemd-coredump                           **Never logged in**
ostechnix        tty1                      Mon Jan 11 07:51:46 +0000 2021
lxd                                        **Never logged in**
dnsmasq                                    **Never logged in**
libvirt-qemu                               **Never logged in**
libvirt-dnsmasq                            **Never logged in**
cockpit-ws                                 **Never logged in**
cockpit-wsinstance                           **Never logged in**
libvirtdbus                                **Never logged in**
_flatpak                                   **Never logged in**
sk               pts/0    192.168.225.37   Wed Jan  6 11:02:17 +0000 2021
root                                       **Never logged in**
nobody                                     **Never logged in**

Como puede ver en el resultado anterior, lastlog El comando muestra los últimos registros de inicio de sesión de las cuentas de usuario del sistema, así como otras cuentas de servicio como bin , daemon , sys , mail , nobody etc

El lastlog El comando imprime el nombre de inicio de sesión, el puerto, la dirección IP de origen desde la que el usuario inició sesión y la última fecha y hora de inicio de sesión. Si un usuario nunca ha iniciado sesión, imprimirá el mensaje ** Never logged in** en lugar del puerto y la hora en la salida.

Quizás se pregunte por qué hay muchas cuentas de servicio que nunca han iniciado sesión. Esto se debe a que los shells de inicio de sesión para estas cuentas están configurados en /sbin/nologin . Es una práctica de seguridad común utilizada para limitar el acceso directo al shell.

3.1. Mostrar los detalles de la última sesión iniciada de un usuario específico

Si desea mostrar el último registro de registro de un usuario específico, por ejemplo, ostechnix , el comando sería:

$ lastlog -u ostechnix

Salida de muestra:

Username         Port     From             Latest
ostechnix        tty1                      Mon Jan 11 07:51:46 +0000 2021

3.2. Mostrar los últimos registros de inicio de sesión anteriores o recientes a X días

El lastlog El comando puede mostrar registros de inicio de sesión recientes antes de o más recientes que X días.

Por ejemplo, puede obtener registros de inicio de sesión recientes de todos los usuarios antes de 5 días usando -b marca como a continuación:

$ lastlog -b 5

De manera similar, para mostrar los registros de inicio de sesión de más de 5 días, use -t bandera:

$ lastlog -t 5

3.3. Eliminar o borrar la última información de inicio de sesión usando lastlog en Linux

Si no desea el último registro de registro de un usuario, simplemente bórrelo usando -C (--clear ) bandera:

$ sudo lastlog -u ostechnix -C

Para verificar si se borra el registro de registro, ejecute:

$ lastlog -u ostechnix
Username         Port     From             Latest
ostechnix                                         **Never logged in**

Obtener ayuda

Para obtener más detalles, consulte la sección de ayuda del comando respectivo.

$ last --help
$ lastb --help
$ lastlog --help

O revise las páginas del manual de cada comando:

$ man last
$ man lastb
$ man lastlog

Conclusión

El last , lastb y lastlog commands viene al rescate para detectar actividades sospechosas de los usuarios en un sistema Linux. Encontrar quién se conectó (o se desconectó) recientemente del servidor Linux, cuándo se conectó y por cuánto tiempo son los detalles importantes que definitivamente lo ayudarán en los momentos de solución de problemas.

Lectura relacionada:

  • Cómo encontrar usuarios conectados actualmente en Linux
  • Cómo enumerar todos los usuarios en Linux
  • Cómo monitorear la actividad del usuario en Linux
  • Cómo limitar el acceso del usuario al sistema Linux

Linux
  1. Cómo usar BUSCAR en Linux

  2. Cómo cambiar el nombre de host en Linux

  3. Cómo encontrar un archivo en Linux

  4. Cómo encontrar todos los usuarios de Sudo en Linux

  5. ¿Cómo encontrar archivos modificados en los últimos 30 días en Linux?

Cómo encontrar usuarios actualmente conectados en Linux

Cómo encontrar el nombre de host en Linux

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo encontrar archivos modificados en las últimas 24 horas en Linux

Cómo encontrar el último inicio de sesión en Linux

Cómo ver los usuarios registrados en Linux