Comment savoir qui utilise un fichier dans Linux

Comment savoir qui utilise un fichier dans Linux

Dans cet article, nous expliquerons comment savoir qui utilise un fichier particulier dans Linux. Cela vous aidera à connaître l'utilisateur ou le processus système qui utilise un fichier ouvert.

Nous pouvons utiliser la commande LSOF pour savoir si quelqu'un utilise un fichier, et s'il est, qui. Il lit la mémoire du noyau dans sa recherche de fichiers ouverts et vous aide à répertorier tous les fichiers ouverts. Dans ce cas, un fichier ouvert peut être un fichier régulier, un répertoire, un fichier spécial de bloc, un fichier spécial de caractère, un flux, un fichier réseau et bien d'autres - car dans Linux, tout est un fichier.

LSOF est utilisé sur un système de fichiers pour identifier qui utilise des fichiers sur ce système de fichiers. Tu peux courir Commande LSOF sur le système de fichiers Linux et la sortie identifie le propriétaire et les informations du processus pour les processus utilisant le fichier comme indiqué dans la sortie suivante.

$ lsof / dev / null 
Liste de tous les fichiers ouverts dans Linux
Commande PID User FD Type Taille du périphérique / Off Name Node Systemd 1480 Tecmint 0r Chr 1,3 0T0 6 / Dev / NULL SH 1501 Tecmint 0r Chr 1,3 0T0 6 / Dev / NULL SH 1501 Tecmint 1W Chr 1,3 0T0 6 / Dev / null dbus-daem 1530 tecmint 0u chle 1,3 0t0 6 / dev / null xfce4-ses 1603 tecmint 0r chr 1,3 0t0 6 / dev / null xfce4-ses 1603 tecmint 1w chr 1,3 0t0 6 / dev / NULL AT-SPI-BU 1604 TECMINT 0R CHR 1,3 0T0 6 / DEV / NULL DBUS-DAEM 1609 TECMINT 0U CHR 1,3 0T0 6 / DEV / NULL AT-SPI2-R 1611 Tecmint 0U Chr 1,3 0T0 6 / Dev / null xfconfd 1615 Tecmint 0U Chr 1,3 0T0 6 / Dev / Null XFWM4 1624 Tecmint 0r Chr 1,3 0T0 6 / Dev / Null XFWM4 1624 Tecmint 1W Chr 1,3 0T0 6 / Dev / NULL XFCE4-PAN 1628 Tecmint 0R Chr 1,3 0T0 6 / Dev / Null XfCE4-PAN 1628 Tecmint 1W Chr 1,3 0T0 6 / Dev / Null Thunar 1630 Tecmint 0r Chr 1,3 0T0 6 / Dev / Null Thunar 1630 Tecmint 1W Chr 1,3 0T0 6 / dev / null xfdesktop 1632 Tecmint 0r Chr 1,3 0T0 6 / dev / null xfdesktop 1632 Tecmint 1W Chr 1,3 0T0 6 / dev / null… 

Pour répertorier les fichiers ouverts spécifiques de l'utilisateur, exécutez la commande suivante Remplacer Tecmint avec le nom d'utilisateur réel.

$ lsof -u tecmint 
Liste des fichiers ouverts par l'utilisateur
Commande PID User Type FD Taille du périphérique / Off Name Node Node Systemd 1480 Tecmint CWD Dir 8,3 4096 2 / Systemd 1480 Tecmint RTD Dir 8,3 4096 2 / Systemd 1480 Tecmint Txt Reg 8,3 1595792 3147496 / lib / systemd / systemd Systemd 1480 Tecmint mem reg 8,3 1700792 3150525 / lib / x86_64-linux-gnu / libm-2.27.So Systemd 1480 Tecmint Mem Reg 8,3 121016 3146329 / lib / x86_64-linux-gnu / libudev.donc.1.6.9 Systemd 1480 Tecmint Mem Reg 8,3 84032 3150503 / lib / x86_64-linux-gnu / libgpg-error.donc.0.22.0 Systemd 1480 Tecmint Mem Reg 8,3 43304 3150514 / lib / x86_64-linux-gnu / libjson-c.donc.3.0.1 Systemd 1480 Tecmint MEM REG 8,3 34872 2497970 / USR / LIB / X86_64-LINUX-GNU / LIBARGON2.donc.0 Systemd 1480 Tecmint Mem Reg 8,3 432640 3150484 / lib / x86_64-linux-gnu / libdevmapper.donc.1.02.1 Systemd 1480 Tecmint Mem Reg 8,3 18680 3150450 / lib / x86_64-linux-gnu / libattr.donc.1.1.0 Systemd 1480 Tecmint Mem Reg 8,3 18712 3150465 / lib / x86_64-linux-gnu / libcap-ng.donc.0.0.0 Systemd 1480 Tecmint Mem Reg 8,3 27112 3150489 / lib / x86_64-linux-gnu / libuuid.donc.1.3.0 Systemd 1480 Tecmint Mem Reg 8,3 14560 3150485 / lib / x86_64-linux-gnu / libdl-2.27.donc… 

Une autre utilisation importante de lsof est de découvrir le processus écoutant sur un port spécifique. Par exemple, identifiez l'écoute de processus sur le port 80 en utilisant la commande suivante.

$ sudo lsof -i tcp: 80 
Découvrez le port d'écoute du processus
Commande PID User FD Type Taille de périphérique / Off Nom du nœud Httpd 903 ROOT 4U IPV6 20222 0T0 TCP *: HTTP (ÉCOUTER) HTTPD 1320 APACHE 4U IPV6 20222 0T0 TCP *: HTTP (LICEN) (Écouter) httpd 1482 apache 4u ipv6 20222 0t0 tcp *: http (écouter) httpd 1493 apache 4u ipv6 202222 0t0 tcp *: http (écouter) httpd 1763 apache 4u ipv6 20222 0t0 tcp *: http (écouter) 20222 0T0 TCP *: http (écouter) httpd 2029 Apache 4U ipv6 20222 0T0 TCP *: http (écouter) httpd 2044 apache 4U ipv6 20222 0t0 tcp *: http (écouter) httpd 3199 Apache 4u ipv6 2022220 ) httpd 3201 Apache 4U ipv6 20222 0t0 TCP *: http (écouter) 

Note: Depuis lsof lit la mémoire du noyau dans sa recherche de fichiers ouverts, des changements rapides dans la mémoire du noyau peuvent entraîner des sorties imprévisibles. C'est l'un des principaux inconvénients de l'utilisation de la commande LSOF.

Pour plus d'informations, regardez le lsof Page de l'homme:

$ man lsof 

C'est tout! Dans cet article, nous avons expliqué comment savoir qui utilise un fichier particulier dans Linux. Nous avons montré comment identifier les informations du propriétaire et le processus pour les processus à l'aide d'un fichier ouvert. Utilisez le formulaire de rétroaction ci-dessous pour nous joindre pour toute question ou commentaire.