Como verificar arquivos abertos no Linux

Como verificar arquivos abertos no Linux

Você pode ter encontrado o ditado: “Tudo é um arquivo no Linux.”Embora isso não seja totalmente verdadeiro, ele mantém um conjunto de verdades.

Nos sistemas Linux e Unix, tudo é como um arquivo. Isso significa que os recursos no sistema UNIX recebem um descritor de arquivo, incluindo dispositivos de armazenamento, soquetes de rede, processos, etc.

Um descritor de arquivo é um número exclusivo que identifica um arquivo e outros dispositivos de entrada/saída. Ele descreve recursos e como o kernel os acessa. Pense nisso como uma porta de entrada para os recursos de hardware de abstração do kernel.

Infelizmente, o conceito de descritores de arquivos está além do escopo deste tutorial; Considere o link fornecido abaixo para começar a aprender mais:

https: // pt.Wikipedia.org/wiki/file_descriptor

Isso significa que sistemas do tipo Unix e Unix, como o Linux, usam esses arquivos. Como usuário do Linux Power, ver os arquivos abertos e o processo e os usuários que os usam é incrivelmente útil.

Este tutorial se concentrará em maneiras de ver os arquivos abertos e qual processo ou usuário é responsável.

Pré-requisitos

Antes de começarmos, verifique se você tem:

  • Um sistema Linux
  • Usuário com privilégios root ou sudo

Se você os tiver, vamos começar:

UTILIDADE LSOF

Criado por Victor A Abell, listar arquivos abertos ou LSOF para curta, é um utilitário de linha de comando que nos permite visualizar os arquivos abertos e os processos ou usuários que os abriram.

O utilitário LSOF está disponível nas principais distribuições Linux; No entanto, você pode encontrá -lo não instalado e, portanto, pode precisar instalar manualmente.

Como instalar o LSOF no Debian/Ubuntu

Para instalá -lo no Debian, use o comando:

Atualização de sudo apt-get
sudo apt -get install lsof -y

Como instalar no rehl/centos

Para instalar no Rehl e no CentOS, use o comando:

Atualização do Sudo DNF
sudo dnf install lsof

Como instalar no arco

Em Arch, ligue para o gerenciador de pacotes usando o comando:

Sudo Pacman -Sy
sudo pacman -s lsof

Como instalar no Fedora

No Fedora, use o comando:

sudo yum install lsof

Depois de instalar e atualizar o utilitário LSOF, podemos começar a usá -lo.

Uso básico de uso

Para usar a ferramenta LSOF, insira o comando:

sudo lsof

Depois de executar o comando acima, o LSOF despejará muitas informações, como mostrado abaixo:

A saída acima mostra todos os arquivos abertos pelos processos. A saída possui várias colunas, cada uma representando informações específicas sobre o arquivo.

  • A coluna de comando - mostra o nome do processo que está usando o arquivo.
  • PID - mostra o identificador do processo do processo usando o arquivo.
  • O tid - Mostra o ID da tarefa (threads) do processo.
  • TaskCmd - Representar o nome do comando de tarefas.
  • DO UTILIZADOR - O proprietário do processo.
  • Fd - Mostra o número do descritor de arquivo. É assim que os processos usam o arquivo; As opções disponíveis nesta saída da coluna incluem:
  • cwd - Diretório de trabalho atual.
  • Mem - arquivo mapeado de memória
  • Pd - Diretório Parental
  • JLD - diretório de prisão
  • LTX - Texto compartilhado da biblioteca
  • rtd - diretório raiz.
  • TXT - Código do programa e dados
  • tr - Arquivo de rastreamento do kernel.
  • errar - Erro de informação do descritor de arquivo
  • mmp - Dispositivo mapeado de memória.
  • TIPO - Mostra o tipo de nó associado ao arquivo, como:
  • Unix - para soquete de domínio Unix.
  • Dir - representa o diretório
  • Reg - representando o arquivo regular
  • Chr - representa o arquivo de personagem especial.
  • LINK - arquivo de link simbólico
  • Blk - Bloqueie o arquivo especial
  • INET - Soquete de domínio da Internet
  • FIFO - um tubo nomeado (primeiro no primeiro arquivo fora)
  • CANO - para tubos

E muitos mais.

  • DISPOSITIVOS - Mostra os números de dispositivos separados por vírgulas na ordem de arquivo de caracteres especiais, bloco especial, regular, diretório e arquivo NFS.
  • Tamanho/desligado - Mostra o tamanho do arquivo de arquivo de arquivo de arquivo em bytes.
  • - Mostra o número do nó do arquivo local, tipo para tipo de protocolo da Internet, etc.
  • NOME - mostra o nome do ponto de montagem e FS no qual o arquivo está localizado.

Observação: Consulte o Manual LSOF para obter informações detalhadas sobre as colunas.

Como mostrar processos que abriram um arquivo

O LSOF nos oferece opções que nos ajudam a filtrar a saída para mostrar apenas os processos que abriram um arquivo específico.

Por exemplo, para ver o arquivo que abriu o arquivo /bin /bash, use o comando como:

sudo lsof /bin /bash

Isso lhe dará uma saída como mostrado abaixo:

Comando PID Usuário Tipo FD Tamanho do dispositivo/Nome Off Node
KSMTUNED 1025 RAOT 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

Como os arquivos de shows são abertos por um usuário específico

Também podemos filtrar a saída para mostrar os arquivos abertos por um usuário específico. Fazemos isso usando a bandeira -u seguida pelo nome de usuário como:

sudo lsof -u centos

Isso lhe dará uma saída como mostrado abaixo:

Como mostrar os arquivos abertos por um processo específico

Suponha que queremos ver todos os arquivos abertos por um processo específico? Para isso, podemos usar o PID do processo para filtrar a saída.

Por exemplo, o comando abaixo mostra os arquivos abertos por Bash.

sudo lsof -p 3075

Isso fornecerá apenas os arquivos abertos pelo Systemd, como mostrado:

Como mostrar os arquivos abertos em um diretório

Para abrir os arquivos em um diretório específico, podemos passar a opção +d seguida pelo caminho do diretório.

Por exemplo, listar arquivos abertos no diretório /etc.

sudo lsof +d /etc

Abaixo está a saída para isso:

Como mostrar a conexão de rede

Como tudo no Linux é um arquivo, podemos obter os arquivos de rede, como arquivos TCP ou conexões.

Podemos usar o comando:

sudo lsof -i tcp

Isso lhe dará as conexões TCP no sistema.

Você também pode filtrar pela porta específica usando o comando mostrado abaixo:

sudo lsof -i: 22

Isso lhe dará a saída como mostrado abaixo:

Como mostrar continuamente arquivos

O LSOF nos fornece um modo para loop da saída a cada poucos segundos. Isso permite monitorar os arquivos abertos por um processo ou usuário continuamente.

Esta opção, no entanto, exige que você encerre o processo manualmente.

Por exemplo, o comando abaixo monitora continuamente os arquivos abertos na porta 22:

sudo lsof -r -i: 22

Como você pode ver, no terceiro loop, o LSOF pega a conexão estabelecida com o servidor no SSH.

Conclusão

LSOF é uma utilidade incrivelmente útil. Ele permite monitorar arquivos críticos, bem como monitorar usuários e processos de abrindo arquivos. Isso pode ser incrivelmente útil ao solucionar problemas ou procurar tentativas maliciosas para o sistema.

Conforme mostrado neste tutorial, usando vários exemplos e métodos, você pode combinar a funcionalidade fornecida pela ferramenta LSOF para monitoramento personalizado.

Obrigado por ler e compartilhar! Espero que você tenha aprendido algo novo!