Avez-vous déjà essayé de fermer votre shell ou de démonter un lecteur uniquement pour obtenir une erreur indiquant qu'un ou plusieurs fichiers sont en cours d'utilisation? Ou peut-être avez-vous essayé de modifier un fichier pour découvrir qu'il est verrouillé par un autre programme ?
Peut-être craignez-vous que quelqu'un ait en quelque sorte obtenu un accès non autorisé à votre système Linux. À l'aide d'un outil appelé lsof, vous pouvez voir quels fichiers sont ouverts, même via des connexions réseau.
Qu'est-ce que lsof ?
lsof est un utilitaire qui répertorie les fichiers ouverts. Victor Abell l'a développé à l'origine à l'Université Purdue. Il est disponible pour plusieurs implémentations Unix, y compris Linux. Il est actuellement entretenu par le L'équipe lsof-org sur GitHub.
Installer lsof sous Linux
Il y a de fortes chances que lsof soit déjà installé sur votre système. Essayez de taper lsof à la ligne de commande. Si ce n'est pas le cas, vous pouvez l'installer via le gestionnaire de packages de votre distribution.
Sur un système Ubuntu ou Debian, tapez :
sudo apt installer lsof
Sur Distributions Linux basées sur Arch:
sudo pacman -S lsof
Et sur RHEL, Rocky Linux et Oracle Linux :
sudo dnf installer lsof
Affichage des fichiers ouverts sous Linux avec lsof
L'utilisation de lsof est simple. Vous pouvez simplement l'invoquer en ligne de commande pour voir tous les fichiers ouverts vous appartenant :
lsof
lsof peut répertorier les processus appartenant à root comme "Autorisation refusée". Pour voir tous les fichiers ouverts par tous les processus à l'échelle du système, exécutez-le en tant que root :
sudo lsof
lsof affichera la commande, le PID, l'utilisateur qui l'a invoqué, le descripteur de fichier, le type, le périphérique, la taille, le nœud et le chemin absolu du fichier ouvert.
Si vous essayez de démonter un lecteur tel qu'un lecteur optique et obtenez une erreur indiquant que des fichiers sont en cours d'utilisation, vous pouvez voir quel processus utilise le fichier, puis le quitter ou le tuer.
Pour voir toutes les prises Internet actuellement utilisées sur votre système, utilisez le -je option:
sudo lsof-i
Vous pouvez détecter une éventuelle intrusion si vous remarquez quelque chose de suspect sur votre système, mais des attaquants plus sophistiqués peuvent mieux couvrir leurs traces.
Le -r L'option met lsof en mode de répétition, où il affichera les résultats après un certain intervalle jusqu'à ce que vous appuyiez sur Ctrl + C. Par défaut, il s'exécute toutes les 15 secondes, mais vous pouvez le modifier. Par exemple, vous pouvez exécuter la commande toutes les 10 secondes en tapant :
lsof-r 10
Comme avec d'autres utilitaires Linux, vous pouvez combiner ces commutateurs. Supposons que vous souhaitiez surveiller votre connexion Internet toutes les cinq secondes. Vous pouvez le faire avec lsof en tapant :
lsof -i -r 5
Vous pouvez désormais suivre les processus Linux ayant des fichiers ouverts
Avec lsof, vous pouvez rechercher les processus qui ont des fichiers ouverts et résoudre les problèmes qu'ils pourraient causer.
Les fichiers ouverts ne sont qu'une facette des processus Linux. Il existe de nombreuses façons de gérer les processus sous Linux. Il est facile de démarrer, d'arrêter et d'examiner les processus sous Linux afin que vous puissiez tirer le meilleur parti de votre système.