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:
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.
E muitos mais.
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!