Zkoušeli jste někdy zavřít shell nebo odpojit jednotku, abyste dostali chybu, že se používá jeden nebo více souborů? Nebo jste se možná pokusili upravit soubor, abyste zjistili, že je uzamčen jiným programem?
Možná se obáváte, že někdo nějak neoprávněně získal přístup k vašemu systému Linux. Pomocí nástroje nazvaného lsof můžete vidět, které soubory jsou otevřené, a to i přes síťová připojení.
Co je lsof?
lsof je nástroj, který zobrazuje otevřené soubory. Victor Abell jej původně vyvinul na Purdue University. Je k dispozici pro několik unixových implementací, včetně Linuxu. V současné době je udržována tým lsof-org na GitHubu.
Instalace lsof na Linux
Je velká šance, že již máte ve svém systému nainstalovaný lsof. Zkuste psát lsof na příkazovém řádku. Pokud tomu tak není, můžete jej nainstalovat prostřednictvím správce balíčků vašeho distribuce.
V systému Ubuntu nebo Debian zadejte:
sudo apt Nainstalujte lsof
Na Linuxové distribuce založené na Arch:
sudo pacman -S lsof
A na RHEL, Rocky Linux a Oracle Linux:
sudo dnf Nainstalujte lsof
Prohlížení otevřených souborů na Linuxu pomocí lsof
Použití lsof je jednoduché. Můžete jej vyvolat na příkazovém řádku a zobrazit všechny otevřené soubory, které vám patří:
lsof
lsof může vypsat procesy patřící uživateli root jako "Povolení odepřeno." Chcete-li zobrazit všechny soubory otevřené všemi procesy v celém systému, spusťte jej jako root:
sudo lsof
lsof zobrazí příkaz, PID, uživatele, který jej vyvolal, deskriptor souboru, typ, zařízení, velikost, uzel a absolutní cestu k otevřenému souboru.
Pokud se pokusíte odpojit jednotku, jako je optická jednotka, a zobrazí se chyba, že soubory jsou používány, můžete zjistit, který proces soubor používá, a poté jej ukončit nebo zabít.
Chcete-li zobrazit všechny internetové zásuvky, které se aktuálně používají ve vašem systému, použijte -i volba:
sudo lsof -i
Pokud si ve svém systému všimnete něčeho podezřelého, můžete zjistit možné narušení, ale sofistikovanější útočníci mohou lépe zakrýt své stopy.
The -r volba přepne lsof do režimu opakování, kde bude zobrazovat výsledky po určitém intervalu, dokud nestisknete Ctrl + C. Ve výchozím nastavení se spouští každých 15 sekund, ale můžete to změnit. Příkaz můžete například spouštět každých 10 sekund zadáním:
lsof -r 10
Stejně jako u jiných linuxových nástrojů můžete tyto přepínače kombinovat. Předpokládejme, že jste chtěli sledovat připojení k internetu každých pět sekund. Můžete to udělat pomocí lsof zadáním:
lsof -i -r 5
Nyní můžete sledovat, které procesy Linuxu mají otevřené soubory
Pomocí lsof můžete sledovat, které procesy mají otevřené soubory, a opravit případné problémy, které mohou způsobit.
Otevřené soubory jsou jen jedním aspektem procesů Linuxu. Existuje mnoho způsobů, jak spravovat procesy v Linuxu. Je snadné spouštět, zastavovat a zkoumat procesy v Linuxu, abyste mohli ze svého systému vytěžit maximum.