Los Sistemas Operativos basados en UNIX son una fuente de recursos para los administradores bastante amplia ya que en ella todas las tareas son realizadas a través de comandos independiente del uso que les hemos de dar. Puede ser la creación de un usuario, acceder a los procesos activos o simplemente ver la capacidad de los discos duros, todo está basado en comandos. Pero sabías que estos sistemas basados en UNIX, como Linux en este caso, integran un archivo de registro llamado wtmp, ¿alguna vez lo escuchaste?, si tu respuesta es no estás en el lugar correcto porque Solvetic te dirá qué es y qué hace este archivo.
- La letra "w" significa when (cuándo) o who (quién) alguna de estas dos opciones
- La sección "tmp" puede tener dos significados también, "temporal" o "marca de tiempo".
Independiente del significado, este archivo tiene la tarea de capturar y registrar todos los eventos de inicio y cierre de sesión lo cual es esencial y de gran ayuda para muchas de las tareas que debemos realizar con frecuencia en el sistema.
Una de las partes que debemos considerar y que Solvetic te las explica con claridad, es que el archivo wtmp es un archivo binario de modo que no podemos usar un editor de texto como nano o vi para su lectura, en su lugar debemos recurrir al uso de un comando especial llamada last.
El uso de este comando maneja diversos parámetros que veremos a continuación y más adelante los veremos en la práctica, las opciones de uso de last son:
- -num o n num: Indica la cantidad de líneas que han de ser desplegadas en el resultado.
- -t YYYYMMDDHHMMSS: Despliega el estado de los inicios de sesión indicando el tiempo especificado en año, mes o día.
- -f file: este parámetro permite realizar la búsqueda en un archivo diferente a /var/log/wtmp.
- -R: Suprime la vista del campo de nombre de host.
- -a: despliega el nombre del host en la última columna.
- -d: aplica para los inicios de sesión que no sean locales, en este caso Linux almacena tanto el nombre de host del equipo remoto como su dirección IP.
- -i: despliega la dirección IP en la notación de números y puntos.
- -o: este parámetro permite leer un archivo wtmp antiguo escrito por las aplicaciones linux-libc5.
- -x: gracias a este parámetro podemos ver los eventos de apagado del sistema y los cambios de nivel de ejecución.
- El nombre de usuario que inició sesión.
- Equipo en el cual estaba conectados, allí, si vemos una entrada de terminal :0 significa que el registro fue realizado en el propio equipo local.
- La dirección IP del equipo en el cual se estableció la conexión.
- La hora de inicio de sesión y fecha de acceso.
- La duración de la sesión en el sistema.
¿Estás listo para ver el comando last en acción?, Solvetic a continuación explicará cómo usarlo en Linux. A continuación, veremos los diferentes usos para el comando last y lastb b de Linux y así hacer diferentes opciones.
1. Cómo mostrar un número determinado de líneas con comandos Linux
En algunos casos es posible que los resultados sean bastante largos por diversos usuarios o por múltiples registros, podemos indicar el número de líneas a visualizar usando el parámetro “-n” donde n es la cantidad de líneas a visualizar, así, si deseamos solo ver las últimas 3 líneas ejecutaremos:
last -3
2. Cómo desplegar nombres de red para usuarios remotos con comandos Linux
Gracias al parámetro -d (Domain Name System), tenemos la oportunidad de que el comando last resuelva las direcciones IP de los usuarios remotos con el fin de una administración mucho más completa, para ello podemos ejecutar lo siguiente:
last -d
3. Cómo ocultar mi IP en los resultados con comandos Linux
Con el parámetro -R podemos fácilmente ocultar la dirección IP en la ejecución del comando, pero debes entender que si usamos last para análisis detallados lo más recomendable es no suprimir las direcciones IP:
last -R
4. Cómo seleccionar registros por fecha con comandos Linux
Con el uso del parámetro -s (since), es posible aplicar un filtro en el comando last para determinar a partir de qué fecha deseamos ver los eventos, por ejemplo, si deseamos visualizar todos los registros desde el día 3 de junio del 2019 vamos a ejecutar lo siguiente. Como vemos, allí solo están los registros desde la fecha indicada.
last -R -s 2019-06-03
5. Cómo buscar por fecha específica con comandos Linux
Gracias al parámetro -t (until) será posible especificar una fecha de finalización, es decir, será posible seleccionar un rango de registros de inicio de sesión entre dos fechas definidas, por ejemplo, deseamos ver los registros entre mayo 28 y junio 4, ejecutaremos lo siguiente:
last -R -s 2019-05-28 -t 2019-06-04
6. Cómo ver formatos de fecha y hora en last con comandos Linux
Al usar el comando last, todo lo relacionado con fechas y tiempo se usa con los parámetros -s y -t, en este caso podemos hacer uso de diferentes formatos como lo son:
YYYYMMDDhhmmss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm – en este caso los segundos se establecen en 00 YYYY-MM-DD – el tiempo se define en 00:00:00 hh:mm:ss – la fecha se establece en el día actual hh:mm – la fecha se establece en hoy y los segundos en 00 now yesterday – el tiempo se define en 00:00:00 today – el tiempo se define en 00:00:00 tomorrow – el tiempo se define en 00:00:00 +5min -5days
Podremos ejecutar algo similar a esto:
last -R -s 2019-05-25 10:00 -t 2019-06-04 19:00
Es normal que en algunos casos no obtengamos ningún tipo de resultado, ahora, si usamos el formato implementado los segundos, pero si usar los guiones y los dos puntos, veremos resultados:
last -R -s 20190525100000 -t 20190604190000
7. Cómo buscar eventos por fecha con comandos Linux
Con el comando last es posible indicar períodos de tiempo que pueden ser medidos en minutos o días, tomando como criterio la relación con la fecha y la hora actuales, por ejemplo, para buscar eventos desde hace 10 días hasta hace 3 días ejecutamos:
last -R -s -10days -t -3days
Del mismo modo podemos buscar registros usando los parámetros ayer, hoy o ahora, por ejemplo, podemos desplegar los resultados de ayer y hoy ejecutando:
last -R -s yesterday -t today
Usando el parámetro now (ahora), será posible ver los eventos de inicio de sesión que han sido ejecutados desde las 00:00 hasta cuando ejecutamos el comando:
last -R -s today -t now
8. Cómo usar la opción Present con comandos Linux
Gracias al parámetro -p (present) será posible determinar quién inició sesión en un momento específico en el equipo, allí se permite usar variables como now o indicar una hora específica:
last -R -p 08:00
Con el uso del comando now podemos ver quien ha iniciado sesión hasta el momento de ejecución de la orden:
9. Cómo usar comando lastb Linux
Este comando lastb es un comando que ha sido desarrollado para leer los datos de un registro denominado btmp y la función primordial de lastb es listar los intentos de inicio de sesión incorrectos o fallidos, en caso de detectar algún registro, todas las entradas serán de una duración de 00:00 ya que no se inició sesión en el sistema.
Este comando debe usarse como superusuario. En este caso no se han detectado inicios de sesión incorrectos.
sudo lastb -R
Gracias a este útil comando tenemos la capacidad de acceder a información completa de los eventos registrados en el sistema.