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 :

LSOF01

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 :LSOF02

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 :

LSOF03

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 :

LSOF04

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.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael has 478 posts and counting.See all posts by mickael

    3 pensées sur “LSOF lister tous les processus utilisant un fichier

    • Ping :

    • 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.

      Répondre
    • 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

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *