LSOF lister tous les processus utilisant un fichier
I. Présentation
LSOF pour "List Open file" est une commande sous Linux présente ou installable sur la plupart des distributions basées sur Debian qui permet de lister les fichiers ouverts sur le système. Beaucoup d'options et d'utilisations peuvent être faites de cette commande qui peut être très utile pour les administrateurs systèmes (entre autre).
Dans ce tutoriel, nous allons voir comment lister tous les processus qui ouvrent un fichier spécifique sur le système. Il est important de savoir que LSOF peut être utilisé de beaucoup de façons différentes et que seule une petite partie en est exposée ici. Nous allons dans un premier temps vérifier que la commande est bien installée sur le système.
lsof -v
Si la commande est bien installée, nous aurons plusieurs informations dont le numéro de version de la commande comme suivant :
Si vous obtenez un "command not found", c'est qu'il faut installer la commande :
apt-get update && apt-get install lsof
Nous considérons dans ce tutoriel par exemple que nous voulons voir qui ou quoi ouvre actuellement le fichier /var/log/syslog. Nous allons donc faire une petite rechercher dans l'aide LSOF :
lsof --help
Nous voyons alors l'information suivante :
On voit donc que l'on peut spécifier à la commande un nom de fichier qui sera la seule cible de l'analyse. Voici comment utiliser la commande pour un seul fichier par exemple :
lsof /var/log/syslog
Nous aurons un résultat semblable à celui la :
On voit donc bien que la commande "rsyslogd" identifiée par l'identifiant processus 1989 lancée par l'utilisateur "root" est actuellement en train d'ouvrir le fichier "/var/log/syslog". Si nous ouvrons le fichier une seconde fois avec la commande d'affichage "tail" par exemple :
tail -f /var/log/syslog
Puis que nous relançons la commande lsof sur ce fichier :
Nous voyons bien ici notre seconde ouverture de fichier. Une information intéressante que nous pouvons également voir est de savoir si le fichier est ouvert en écriture ou en lecture. On remarque en effet que la commande qui se charge d'inscrire les logs dans le fichier "/var/log/syslog" l'ouvre en écriture alors que la commande "tail" qui ne fait que de l'affichage l'ouvre elle en lecture seulement. On voit plus précisément cela dans la colonne "FD" où l'on peut trouver couramment "w" pour ouverture en écriture, "r" pour ouverture en lecture et "u" pour ouverture en lecture et écriture.
salut, je viens de voir tes tuto, il sont genial, tres bonne explication!
Surtout moi passionner de linux ! je connais des chose en linux mais avec les tiens ca va me renforcer encore plus ! merci à toi!
il faudrait que tu cree un forum, et autre comme etre menbre chez toi !
car c super.
Hello,
La commande lsof ne fonctionne pas et l’activation avec « apt-get update && apt-get install lsof » non plus.
Je suppose que je n’ai pas le bon package.
Dans quel package trouve-t-on cette commande ?
Meilleures salutations
Bonsoir,
Je cherche à savoir la commande qui me donne les fichiers ouverts par un process.
comment faire pour faire un reset du mot de passe root et en donner une autre.
Merci bcp
Bruno Le Bec