Vous avez peut-être rencontré le dicton: «Tout est un fichier dans Linux."Bien que ce ne soit pas entièrement vrai, il y tient un ensemble de vérités.
Dans les systèmes de type Linux et Unix, tout est comme un fichier. Cela signifie que les ressources du système UNIX se voient attribuer un descripteur de fichiers, y compris les périphériques de stockage, les prises de réseau, les processus, etc.
Un descripteur de fichiers est un numéro unique qui identifie un fichier et d'autres périphériques d'entrée / sortie. Il décrit les ressources et comment le noyau y accède. Considérez-le comme une passerelle vers les ressources matérielles d'abstraction du noyau.
Malheureusement, le concept de descripteurs de fichiers dépasse le cadre de ce tutoriel; Considérez le lien fourni ci-dessous pour commencer à en savoir plus:
https: // en.Wikipédia.org / wiki / file_descriptor
Cela signifie que les systèmes UNIX et Unix tels que Linux utilisent fortement ces fichiers. En tant qu'utilisateur de Power Linux, voir les fichiers ouverts et le processus et les utilisateurs qui les utilisent est incroyablement utile.
Ce tutoriel se concentrera sur les moyens d'ouvrir les fichiers et quel processus ou utilisateur est responsable.
Conditions préalables
Avant de commencer, assurez-vous que vous avez:
Si vous en avez, commençons:
Utilitaire LSOF
Créé par Victor A Abell, List Open Files, ou LSOF pour faire court, est un utilitaire de ligne de commande qui nous permet de visualiser les fichiers ouverts et les processus ou les utilisateurs qui les ont ouverts.
L'utilitaire LSOF est disponible dans les principales distributions Linux; Cependant, vous pouvez le trouver non installé et peut donc avoir besoin d'installer manuellement.
Comment installer LSOF sur Debian / Ubuntu
Pour l'installer sur Debian, utilisez la commande:
Mise à jour Sudo apt-get
sudo apt-get install lsof -y
Comment installer sur Rehl / Centos
Pour installer sur Rehl et CentOS, utilisez la commande:
Mise à jour Sudo DNF
sudo dnf installer lsof
Comment installer sur Arch
Sur Arch, appelez le gestionnaire de packages à l'aide de la commande:
Sudo Pacman -Sy
sudo pacman -s lsof
Comment installer sur Fedora
Sur Fedora, utilisez la commande:
sudo yum install lsof
Une fois que l'utilitaire LSOF a installé et mis à jour, nous pouvons commencer à l'utiliser.
Utilisation de base LSOF
Pour utiliser l'outil LSOF, entrez la commande:
sudo lsof
Une fois que vous avez exécuté la commande ci-dessus, LSOF videra beaucoup d'informations comme indiqué ci-dessous:
La sortie ci-dessus affiche tous les fichiers ouverts par les processus. La sortie a diverses colonnes, chacune représentant des informations spécifiques sur le fichier.
Et beaucoup plus.
Note: Veuillez vous référer au manuel LSOF pour des informations détaillées sur les colonnes.
Comment afficher les processus qui ont ouvert un fichier
LSOF nous offre des options qui nous aident à filtrer la sortie pour afficher uniquement les processus qui ont ouvert un fichier spécifique.
Par exemple, pour voir le fichier qui a ouvert le fichier / bin / bash, utilisez la commande comme:
sudo lsof / bin / bash
Cela vous donnera une sortie comme indiqué ci-dessous:
Commande PID User Type FD Taille de l'appareil / Off Node du nœud
KSMTUNED 1025 ROOT 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
Comment afficher les fichiers ouverts par un utilisateur spécifique
Nous pouvons également filtrer la sortie pour afficher les fichiers ouverts par un utilisateur spécifique. Nous le faisons en utilisant le drapeau -u suivi du nom d'utilisateur comme:
sudo lsof -u centos
Cela vous donnera une sortie comme indiqué ci-dessous:
Comment afficher les fichiers ouverts par un processus spécifique
Supposons que nous voulons afficher tous les fichiers ouverts par un processus spécifique? Pour cela, nous pouvons utiliser le PID du processus pour filtrer la sortie.
Par exemple, la commande ci-dessous affiche les fichiers ouverts par bash.
sudo lsof -p 3075
Cela ne vous donnera que les fichiers ouverts par Systemd comme indiqué:
Comment afficher des fichiers ouverts dans un répertoire
Pour ouvrir les fichiers dans un répertoire spécifique, nous pouvons passer l'option + D suivie du chemin du répertoire.
Par exemple, listez les fichiers ouverts dans le répertoire / etc.
sudo lsof + d / etc
Vous trouverez ci-dessous la sortie pour ceci:
Comment montrer la connexion réseau
Étant donné que tout dans Linux est un fichier, nous pouvons obtenir les fichiers réseau tels que les fichiers TCP ou les connexions.
Nous pouvons utiliser la commande:
sudo lsof -i tcp
Cela vous donnera les connexions TCP dans le système.
Vous pouvez également filtrer par le port spécifique en utilisant la commande ci-dessous:
sudo lsof -i: 22
Cela vous donnera la sortie comme indiqué ci-dessous:
Comment afficher en continu des fichiers
LSOF nous fournit un mode pour faire boucle la sortie toutes les quelques secondes. Cela vous permet de surveiller les fichiers ouverts par un processus ou un utilisateur en continu.
Cette option, cependant, vous oblige à résilier le processus manuellement.
Par exemple, la commande ci-dessous surveille en continu les fichiers ouverts sur le port 22:
sudo lsof -r -i: 22
Comme vous pouvez le voir, dans la troisième boucle, LSOF attrape la connexion établie au serveur sur SSH.
Conclusion
LSOF est un utilitaire incroyablement utile. Il vous permet de surveiller les fichiers critiques ainsi que de surveiller les utilisateurs et les processus d'ouverture des fichiers. Cela peut être incroyablement utile lors du dépannage ou de la recherche de tentatives malveillantes pour le système.
Comme le montre ce tutoriel, en utilisant divers exemples et méthodes, vous pouvez combiner les fonctionnalités fournies par l'outil LSOF pour une surveillance personnalisée.
Merci d'avoir lu et partagé! J'espère que vous avez appris quelque chose de nouveau!