Você já tentou fechar seu shell ou desmontar uma unidade apenas para obter um erro informando que um ou mais arquivos estão em uso? Ou talvez você tenha tentado editar um arquivo apenas para descobrir que ele está bloqueado por outro programa?

Talvez você esteja preocupado que alguém tenha obtido acesso não autorizado ao seu sistema Linux. Usando uma ferramenta chamada lsof, você pode ver quais arquivos estão abertos, mesmo em conexões de rede.

O que é lsof?

lsof é um utilitário que lista arquivos abertos. Victor Abell o desenvolveu originalmente na Purdue University. Está disponível para várias implementações Unix, incluindo Linux. Atualmente é mantido pelo equipe lsof-org no GitHub.

Instalando lsof no Linux

Há uma boa chance de você já ter lsof instalado em seu sistema. Tente digitar lsof na linha de comando. Se não estiver, você pode instalá-lo através do gerenciador de pacotes da sua distro.

Em um sistema Ubuntu ou Debian, digite:

sudo apt instalar lsof

Sobre Distribuições Linux baseadas em Arch:

sudo pacman -S lsof

E no RHEL, Rocky Linux e Oracle Linux:

sudo dnf instalar lsof

Visualizando arquivos abertos no Linux com lsof

Usar lsof é simples. Você pode apenas invocá-lo na linha de comando para ver todos os arquivos abertos pertencentes a você:

lsof

lsof pode listar processos pertencentes à raiz como "Permissão negada". Para ver todos os arquivos abertos por todos os processos em todo o sistema, execute-o como root:

sudo lsof

lsof mostrará o comando, o PID, o usuário que o invocou, o descritor de arquivo, o tipo, o dispositivo, o tamanho, o nó e o caminho absoluto do arquivo aberto.

Se você tentar desmontar uma unidade, como uma unidade óptica, e receber um erro informando que os arquivos estão em uso, poderá ver qual processo está usando o arquivo e, em seguida, sair ou eliminá-lo.

Para ver quaisquer soquetes de internet atualmente em uso em seu sistema, use o -eu opção:

sudo lsof -i

Você pode detectar uma possível invasão se notar algo suspeito em seu sistema, mas invasores mais sofisticados podem conseguir cobrir melhor seus rastros.

O -r A opção coloca lsof no modo de repetição, onde exibirá os resultados após um determinado intervalo até que você pressione Ctrl + C. Por padrão, ele é executado a cada 15 segundos, mas você pode alterá-lo. Por exemplo, você pode executar o comando a cada 10 segundos digitando:

lsof -r 10

Assim como em outros utilitários do Linux, você pode combinar essas opções. Suponha que você queira monitorar sua conexão com a Internet a cada cinco segundos. Você pode fazer isso com lsof digitando:

lsof -i -r 5

Agora você pode rastrear quais processos do Linux têm arquivos abertos

Com lsof, você pode rastrear quais processos têm arquivos abertos e corrigir quaisquer problemas que possam causar.

Arquivos abertos são apenas uma faceta dos processos do Linux. Existem muitas maneiras de gerenciar processos no Linux. É fácil iniciar, parar e examinar processos no Linux para que você possa aproveitar ao máximo seu sistema.