Jak dowiedzieć się, kto używa pliku w Linux

Jak dowiedzieć się, kto używa pliku w Linux

W tym artykule wyjaśnimy, jak dowiedzieć się, kto używa konkretnego pliku w Linux. Pomoże ci to poznać użytkownika systemu lub proces, który korzysta z otwartego pliku.

Możemy użyć polecenia LSOF, aby wiedzieć, czy ktoś używa pliku i czy jest, kto. Odczytuje pamięć jądra w wyszukiwaniu otwartych plików i pomaga wymienić wszystkie otwarte pliki. W takim przypadku plik otwartym może być zwykły plik, katalog, blokowy plik, plik specjalny znaku, strumień, plik sieciowy i wiele innych - ponieważ w Linux wszystko jest plik.

LSOF jest używany w systemie plików do identyfikacji, kto używa dowolnych plików w tym systemie plików. Możesz biec polecenie lsof w systemie plików Linux i wyjście identyfikuje właściciela i przetwarzają informacje o procesach za pomocą pliku, jak pokazano następujące dane wyjściowe.

$ lsof /dev /null 
Lista wszystkich otwartych plików w Linux
Polecenie PID Użytkownik Typ FD Rozmiar urządzenia /Nazwa węzła Systemd 1480 TecMint 0R Cr 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 /6 /6 /6 / dev/null dbus-daem 1530 TecMint 0U CHR 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/dev/dev/dev/dev/dev/dev/dev/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 /6 /6 /6 / dev/null xfconfd 1615 TecMint 0U CHR 1,3 0T0 6/dev/null xfwm4 1624 TecMint 0r Cr 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… 

Aby wymienić otwarte pliki specyficzne dla użytkownika, uruchom następującą wymianę polecenia Tecmint z rzeczywistą nazwą użytkownika.

$ lsof -u tecmint 
Lista plików otwartych przez użytkownika
Polecenie PID użytkownik FD Typ Rozmiar urządzenia /Nazwa węzłów Off Systemd 1480 TecMint CWD Dir 8,3 4096 2 /Systemd 1480 TecMint RTD Dir 8,3 4096 2 /Systemd 1480 TecMint 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.Tak Systemd 1480 Tecmint Mem Reg 8,3 121016 3146329/Lib/x86_64-Linux-gnu/libudev.Więc.1.6.9 Systemd 1480 Tecmint Mem Reg 8,3 84032 3150503/Lib/x86_64-Linux-gnu/libgpg-błąd.Więc.0.22.0 Systemd 1480 Tecmint Mem Reg 8,3 43304 3150514/Lib/x86_64-Linux-gnu/libJson-C.Więc.3.0.1 Systemd 1480 Tecmint Mem Reg 8,3 34872 2497970/USR/Lib/x86_64-Linux-gnu/libargon2.Więc.0 Systemd 1480 Tecmint Mem Reg 8,3 432640 3150484/Lib/x86_64-Linux-gnu/libDevMapper.Więc.1.02.1 Systemd 1480 Tecmint Mem Reg 8,3 18680 3150450/Lib/x86_64-Linux-gnu/libattr.Więc.1.1.0 Systemd 1480 Tecmint Mem Reg 8,3 18712 3150465/Lib/x86_64-Linux-gnu/libcap-ng.Więc.0.0.0 Systemd 1480 Tecmint Mem Reg 8,3 27112 3150489/Lib/x86_64-Linux-gnu/libuuid.Więc.1.3.0 Systemd 1480 Tecmint Mem Reg 8,3 14560 3150485/Lib/x86_64-Linux-gnu/libdl-2-2.27.Więc… 

Kolejne ważne zastosowanie lsof jest znaleźć proces słuchania w określonym porcie. Na przykład identyfikuj słuchanie procesu w porcie 80 Korzystanie z następującego polecenia.

$ sudo lsof -i tcp: 80 
Dowiedz się, że proces słuchania procesu
Polecenie PID użytkownik FD Typ Rozmiar urządzenia/Nazwa węzła OFF HTTPD 903 Root 4U IPv6 20222 0T0 TCP *: HTTP (Listen) HTTPD 1320 Apache 4U IPv6 20222 0T0 TCP *: HTTP (Listen) Httpd 1481 Apache 4U IPv6 20222 0t0 TCP *: HTTP *: HTTP ( (Listen) Httpd 1482 Apache 4U IPv6 20222 0T0 TCP *: HTTP (Listen) Httpd 1493 Apache 4U IPv6 20222 0T0 TCP *: HTTP (Listen) Httpd 1763 Apache 4U IPv6 20222 0t0 TCP *: HTTP (Losse) HTTPd 2027 20222 0T0 TCP *: http (słuchaj) httpd 2029 Apache 4U IPv6 20222 0T0 TCP *: HTTP (Listen) httpd 2044 Apache 4U IPv6 20222 0t0 TCP *: http (słuchaj) Httpd 3199 Apache 4U ipv6 202222 0t0 TCP *: http *: http (słuchanie) httpd 3199 Apache 4U ipv6 20222 0tp. ) HTTPD 3201 Apache 4U IPv6 20222 0T0 TCP *: HTTP (słuchaj) 

Notatka: Od lsof odczytuje pamięć jądra W poszukiwaniu otwartych plików, szybkie zmiany w pamięci jądra mogą powodować nieprzewidywalne wyjścia. Jest to jedna z głównych wad korzystania z polecenia LSOF.

Aby uzyskać więcej informacji, spójrz na lsof Strona Man:

$ man lsof 

To wszystko! W tym artykule wyjaśniliśmy, jak wiedzieć, kto używa konkretnego pliku w Linux. Pokazaliśmy, jak zidentyfikować właściciela i przetwarzać informacje o procesach za pomocą otwartego pliku. Użyj poniższego formularza opinii, aby skontaktować się z nami w celu uzyskania pytań lub komentarzy.