Cómo averiguar quién está usando un archivo en Linux

Cómo averiguar quién está usando un archivo en Linux

En este artículo, explicaremos cómo averiguar quién está usando un archivo en particular en Linux. Esto lo ayudará a conocer el usuario o proceso del sistema que está utilizando un archivo abierto.

Podemos usar el comando LSOF para saber si alguien está usando un archivo, y si lo es, quién. Lee la memoria del kernel en su búsqueda de archivos abiertos y le ayuda a enumerar todos los archivos abiertos. En este caso, un archivo abierto puede ser un archivo regular, un directorio, un archivo especial de bloque, un archivo especial de caracteres, una transmisión, un archivo de red y muchos otros, porque en Linux todo es un archivo.

LSOF se usa en un sistema de archivos para identificar quién está utilizando cualquier archivo en ese sistema de archivos. Tu puedes correr Comando LSOF en el sistema de archivos de Linux y la salida identifica el propietario y la información del proceso para los procesos utilizando el archivo como se muestra en la siguiente salida.

$ LSOF /dev /null 
Lista de todos los archivos abiertos en Linux
Comando PID Usuario FD Tipo Tipo de dispositivo /Nombre del nodo Desactivado Systemd 1480 Tecmint 0R CHR 1,3 0T0 6 /dev /Null SH 1501 TECMINT 0R CHR 1,3 0T0 6 /Dev /Null SH 1501 Tecmint 1W Chr 1,3 0T0 6 / Dev/NULL DBUS-DAEM 1530 TECMINT 0U CHR 1,3 0T0 6/DEV/NULL XFCE4-SES 1603 TECMINT 0R CHR 1,3 0T0 6/dev/NULL XFCE4-SES 1603 TECMINT 1W CHR 1,3 0T0 6/dev/ NULL AT-SPI-BU 1604 TECMINT 0R CHR 1,3 0T0 6 /dev /null dbus-daem 1609 TECMINT 0U CHR 1,3 0T0 6 /dev /null AT-SPI2-R 1611 TECMINT 0U CHR 1,3 0T0 6 / dev/null xfconfd 1615 tecmint 0u chr 1,3 0t0 6/dev/null xfwm4 1624 tecmint 0r chr 1,3 0t0 6/dev/null xfwm4 1624 tecmint 1w chr 1,3 0t0 6/dev/null xfce4-pan 1628 TECMINT 0r chr 1,3 0t0 6 /dev /null xfce4-pan 1628 tecmint 1W chr 1,3 0t0 6 /dev /null thunar 1630 tecmint 0r chr 1,3 0t0 6 /dev /null thunar 1630 tecmint 1w chr 1,3 0t0 6 /dev /null xfdesktop 1632 tecmint 0r chr 1,3 0T0 6 /dev /null xfdesktop 1632 Tecmint 1W chr 1,3 0t0 6 /dev /null .. 

Para enumerar los archivos abiertos específicos del usuario, ejecute el siguiente comando reemplazar tecmenta con el nombre de usuario real.

$ LSOF -U TECMINT 
Lista de archivos abridos por el usuario
Comando PID Usuario FD Tipo de dispositivo Tamaño del dispositivo /Nombre del nodo OFF Systemd 1480 Tecmint Cwd Dir 8,3 4096 2 /Systemd 1480 TecMint Rtd Dir 8,3 4096 2 /Systemd 1480 TECMINT TXT Reg 8,3 1595792 3147496 /Lib /Systemd /Systemd Systemd Systemd 1480 TECMINT MEM REG 8,3 1700792 3150525/lib/x86_64-linux-gnu/libm-2.27.Entonces Systemd 1480 Tecmint MEM Reg 8,3 121016 3146329/lib/x86_64-linux-gnu/libudev.entonces.1.6.9 Systemd 1480 TECMINT MEM REG 8,3 84032 3150503/lib/x86_64-linux-gnu/libgpg-error.entonces.0.22.0 Systemd 1480 TECMINT MEM REG 8,3 43304 3150514/lib/x86_64-linux-gnu/libjson-c.entonces.3.0.1 Systemd 1480 TECMINT MEM REG 8,3 34872 2497970/usr/lib/x86_64-linux-gnu/libargon2.entonces.0 SYSTEMD 1480 TECMINT MEM REG 8,3 432640 3150484/lib/x86_64-linux-gnu/libdevmapper.entonces.1.02.1 Systemd 1480 TECMINT MEM REG 8,3 18680 3150450/lib/x86_64-linux-gnu/libattr.entonces.1.1.0 Systemd 1480 TECMINT MEM REG 8,3 18712 3150465/lib/x86_64-linux-gnu/libcap-ng.entonces.0.0.0 SYSTEMD 1480 TECMINT MEM REG 8,3 27112 3150489/lib/x86_64-linux-gnu/libuuid.entonces.1.3.0 Systemd 1480 TECMINT MEM REG 8,3 14560 3150485/lib/x86_64-linux-gnu/libdl-2.27.entonces… 

Otro uso importante de LSOF es averiguar el proceso escuchando en un puerto específico. Por ejemplo, identificar el proceso escuchando en el puerto 80 Usando el siguiente comando.

$ sudo LSOF -I TCP: 80 
Encuentre el puerto de escucha de procesos
Comando PID User User FD Tipo Tamaño del dispositivo/Nombre del nodo de apagado Httpd 903 Root 4U IPV6 20222 0T0 TCP *: HTTP (Listen) Httpd 1320 Apache 4U IPV6 20222 0T0 TCP *: HTTP (Listen) Httpd 1481 Apache 4u 4u 4u 5222 0T0 TCP *: HTTP) (Escuchar) httpd 1482 apache 4u ipv6 20222 0t0 tcp *: http (escuchar) httpd 1493 apache 4u ipv6 20222 0t0 tcp *: http (escuchar) httpd 1763 apache 4u ipv6 20222 0t0 tcp *: http (escuchar) 20222 0T0 tcp *: http (escuchar) httpd 2029 apache 4u ipv6 20222 0t0 tcp *: http (escucha) httpd 2044 apache 4u ipv6 20222 0t0 tcp *: http (escucha) httpd 3199 apache 4u 6 20222222222. ) httpd 3201 apache 4u ipv6 20222 0t0 tcp *: http (escuchar) 

Nota: Desde LSOF Lee la memoria del núcleo En su búsqueda de archivos abiertos, los cambios rápidos en la memoria del núcleo pueden dar lugar a salidas impredecibles. Esta es una de las principales desventajas del comando LSOF.

Para obtener más información, mire el LSOF Página del hombre:

$ hombre LSOF 

Eso es todo! En este artículo, hemos explicado cómo saber quién está usando un archivo en particular en Linux. Hemos mostrado cómo identificar el propietario y la información del proceso para los procesos utilizando un archivo abierto. Use el formulario de comentarios a continuación para comunicarse con nosotros para cualquier pregunta o comentario.