Como descobrir quem está usando um arquivo no Linux

Como descobrir quem está usando um arquivo no Linux

Neste artigo, explicaremos como descobrir quem está usando um arquivo específico no Linux. Isso ajudará você a conhecer o usuário ou processo do sistema que está usando um arquivo aberto.

Podemos usar o comando LSOF para saber se alguém está usando um arquivo e, se for, quem. Ele lê a memória do kernel em sua busca por arquivos abertos e ajuda a listar todos os arquivos abertos. Nesse caso, um arquivo aberto pode ser um arquivo regular, um diretório, um arquivo especial em bloco, um arquivo especial de caracteres, um fluxo, um arquivo de rede e muitos outros - porque no Linux tudo é um arquivo.

O LSOF é usado em um sistema de arquivos para identificar quem está usando qualquer arquivo nesse sistema de arquivos. Você pode correr comando lsof No Linux Finsystem e a saída identifica o proprietário e o processo de informações para processos usando o arquivo, como mostrado na saída a seguir.

$ lsof /dev /null 
Lista de todos os arquivos abertos no Linux
Comando PID Usuário FD TIPO TIPO DE DISPOSITIVO /NODE DE OFF NODE SISTEMDS 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 00 6/dev/null xfce4-Pan 1628 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 listar arquivos abertos específicos do usuário, execute o seguinte comando substitua Tecmint Com o nome de usuário real.

$ lsof -u Tecmint 
Lista de arquivos abertos pelo usuário
Comando PID Usuário FD TIPO TIPO DE DISPOSITIVO /NODE DESLIGADO NODE SISTEMDD 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 SystemDd 1480 Tecmint Mem Reg 8,3 1700792 3150525/lib/x86_64-linux-gnu/libm-2.27.SO SISTEMD 1480 TECMINT MEM REG 8,3 121016 3146329/lib/x86_64-linux-gnu/libudev.então.1.6.9 Systemd 1480 Tecmint Mem Reg 8,3 84032 3150503/lib/x86_64-linux-gnu/libgpg-error.então.0.22.0 Systemd 1480 Tecmint Mem Reg 8,3 43304 3150514/lib/x86_64-linux-gnu/libjson-c.então.3.0.1 Systemd 1480 Tecmint Mem Reg 8,3 34872 2497970/usr/lib/x86_64-linux-gnu/libargon2.então.0 Systemd 1480 Tecmint Mem Reg 8,3 432640 3150484/lib/x86_64-linux-gnu/libdevmapper.então.1.02.1 Systemd 1480 Tecmint Mem Reg 8,3 18680 3150450/lib/x86_64-linux-gnu/libattr.então.1.1.0 Systemd 1480 Tecmint Mem Reg 8,3 18712 3150465/lib/x86_64-linux-gnu/libcap-ng.então.0.0.0 Systemd 1480 Tecmint Mem Reg 8,3 27112 3150489/lib/x86_64-linux-gnu/libuuid.então.1.3.0 Systemd 1480 Tecmint Mem Reg 8,3 14560 3150485/lib/x86_64-linux-gnu/libdl-2.27.então… 

Outro uso importante de LSOF é descobrir o processo ouvindo em uma porta específica. Por exemplo, identifique o processo ouvindo na porta 80 Usando o seguinte comando.

$ sudo lsof -i tcp: 80 
Descubra a porta de escuta do processo
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 903 root 4u IPv6 20222 0t0 TCP *:http (LISTEN) httpd 1320 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN) httpd 1481 apache 4u IPv6 20222 0t0 TCP *:http (Ouça) HTTPD 1482 APACHE 4U IPV6 20222 0T0 TCP *: HTTP (Ouvir) HTTPD 1493 APACHE 4U IPV6 20222 0T0 TCP *: HTTP (ouvidos) HTTPD 1763 HED 4U IPV6 20222 0T00: 20222 0t0 TCP *:http (LISTEN) httpd 2029 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN) httpd 2044 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN) httpd 3199 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN ) HTTPD 3201 APACHE 4U IPV6 20222 0T0 TCP *: HTTP (ouça) 

Observação: Desde LSOF Lê a memória do kernel em sua busca por arquivos abertos, mudanças rápidas na memória do kernel podem resultar em saídas imprevisíveis. Esta é uma das principais desvantagens do uso do comando LSOF.

Para mais informações, observe o LSOF Página do homem:

$ MAN LSOF 

Isso é tudo! Neste artigo, explicamos como saber quem está usando um arquivo específico no Linux. Mostramos como identificar o proprietário e processar informações para processos usando um arquivo aberto. Use o formulário de feedback abaixo para alcançar qualquer dúvida ou comentário.