Es posible que haya encontrado el dicho: “Todo es un archivo en Linux."Aunque esto no es del todo cierto, tiene un conjunto de verdades.
En sistemas similares a Linux y Unix, todo es como un archivo. Eso significa que los recursos en el sistema UNIX se les asigna un descriptor de archivo, que incluye dispositivos de almacenamiento, sockets de red, procesos, etc.
Un descriptor de archivo es un número único que identifica un archivo y otros dispositivos de entrada/salida. Describe los recursos y cómo el kernel accede a ellos. Piense en ello como una puerta de entrada a los recursos de hardware de abstracción del kernel.
Desafortunadamente, el concepto de descriptores de archivos está más allá del alcance de este tutorial; Considere el enlace proporcionado a continuación para comenzar a aprender más:
https: // en.Wikipedia.org/wiki/file_descriptor
Eso significa que los sistemas de unix y unix como Linux usan tales archivos en gran medida. Como usuario de Linux Power, ver los archivos abiertos y el proceso y los usuarios que los usan es increíblemente útil.
Este tutorial se centrará en las formas de ver los archivos abiertos y qué proceso o usuario es responsable.
Requisitos previos
Antes de comenzar, asegúrese de tener:
Si tiene estos, comencemos:
LSOF Utilidad
Creado por Victor A Abell, enumere los archivos abiertos, o LSOF para abreviar, es una utilidad de línea de comandos que nos permite ver los archivos abiertos y los procesos o usuarios que los abrieron.
La utilidad LSOF está disponible en las principales distribuciones de Linux; Sin embargo, puede encontrarlo no instalado y, por lo tanto, puede necesitar instalar manualmente.
Cómo instalar LSOF en Debian/Ubuntu
Para instalarlo en Debian, use el comando:
actualización de sudo apt-get
sudo apt -get install lsof -y
Cómo instalar en rehl/centos
Para instalar en Rehl y CentOS, use el comando:
actualización de sudo DNF
sudo DNF Instalar LSOF
Cómo instalar en Arch
En Arch, llame al Administrador de paquetes usando el comando:
sudo Pacman -Sy
sudo Pacman -S LSOF
Cómo instalar en Fedora
En Fedora, usa el comando:
sudo yum install lsof
Una vez que tenga la utilidad LSOF instalada y actualizada, podemos comenzar a usarla.
Uso básico de LSOF
Para usar la herramienta LSOF, ingrese el comando:
sudo lsof
Una vez que ejecute el comando anterior, LSOF arrojará mucha información como se muestra a continuación:
La salida anterior muestra todos los archivos abridos por los procesos. La salida tiene varias columnas, cada una que representa información específica sobre el archivo.
Y muchos más.
Nota: Consulte el manual de LSOF para obtener información detallada sobre las columnas.
Cómo mostrar procesos que abrieron un archivo
LSOF nos proporciona opciones que nos ayudan a filtrar la salida para mostrar solo los procesos que abrieron un archivo específico.
Por ejemplo, para ver el archivo que abrió el archivo /bin /bash, use el comando como:
sudo lsof /bin /bash
Esto le dará una salida como se muestra a continuación:
Comando Nombre del dispositivo Tipo de dispositivo Tipo FD PID Nombre del nodo
KSMTUNED 1025 ROOT TXT REG 253,0 1150704 428303/usr/bin/bash
Bash 2968 CentOS TXT Reg 253,0 1150704 428303/usr/bin/bash
Bash 3075 CentOS TXT Reg 253,0 1150704 428303/usr/bin/bash
Cómo mostrar archivos abridos por un usuario específico
También podemos filtrar la salida para mostrar los archivos abiertos por un usuario específico. Hacemos esto usando la bandera -u seguida del nombre de usuario como:
sudo lsof -u centos
Esto le dará una salida como se muestra a continuación:
Cómo mostrar archivos abiertos por un proceso específico
Supongamos que queremos ver todos los archivos abridos por un proceso específico? Para esto, podemos usar el PID del proceso para filtrar la salida.
Por ejemplo, el comando a continuación muestra los archivos abiertos por Bash.
sudo lsof -p 3075
Esto le dará solo los archivos abridos por Systemd como se muestra:
Cómo mostrar archivos abiertos en un directorio
Para que se abran los archivos en un directorio específico, podemos pasar la opción +D seguida de la ruta del directorio.
Por ejemplo, enumere los archivos abiertos en el directorio /etc.
sudo lsof +d /etc
A continuación se muestra la salida para esto:
Cómo mostrar la conexión de red
Dado que todo en Linux es un archivo, podemos obtener los archivos de red como archivos TCP o conexiones.
Podemos usar el comando:
sudo lsof -i tcp
Esto le dará las conexiones TCP en el sistema.
También puede filtrar por el puerto específico utilizando el comando que se muestra a continuación:
sudo lsof -i: 22
Esto le dará la salida como se muestra a continuación:
Cómo mostrar continuamente archivos
LSOF nos proporciona un modo para recorrer la salida cada pocos segundos. Esto le permite monitorear los archivos abiertos por un proceso o usuario continuamente.
Esta opción, sin embargo, requiere que termine el proceso manualmente.
Por ejemplo, el siguiente comando monitorea continuamente los archivos abiertos en el puerto 22:
sudo lsof -r -i: 22
Como puede ver, en el tercer bucle, LSOF capta la conexión establecida al servidor en SSH.
Conclusión
LSOF es una utilidad increíblemente útil. Le permite monitorear archivos críticos, así como monitorear a los usuarios y procesos de apertura de archivos. Esto puede ser increíblemente útil al solucionar problemas o buscar intentos maliciosos para el sistema.
Como se muestra en este tutorial, utilizando varios ejemplos y métodos, puede combinar la funcionalidad proporcionada por la herramienta LSOF para el monitoreo personalizado.
Gracias por leer y compartir! Espero que hayas aprendido algo nuevo!