Вы когда-нибудь пытались закрыть свою оболочку или размонтировать диск только для того, чтобы получить сообщение об ошибке, что один или несколько файлов используются? Или, возможно, вы пытались отредактировать файл и обнаружили, что он заблокирован другой программой?
Возможно, вы обеспокоены тем, что кто-то каким-то образом получил несанкционированный доступ к вашей системе Linux. Используя инструмент под названием lsof, вы можете увидеть, какие файлы открыты, даже через сетевые подключения.
Что такое lsof?
lsof — это утилита, которая выводит список открытых файлов. Первоначально Виктор Абелл разработал его в Университете Пердью. Он доступен для нескольких реализаций Unix, включая Linux. В настоящее время поддерживается команда lsof-org на GitHub.
Установка lsof в Linux
Есть большая вероятность, что lsof уже установлен в вашей системе. Попробуйте ввести lsof в командной строке. Если это не так, вы можете установить его через менеджер пакетов вашего дистрибутива.
В системе Ubuntu или Debian введите:
Судо подходит установить lsof
На Дистрибутивы Linux на основе Arch:
sudo pacman -S lsof
И на RHEL, Rocky Linux и Oracle Linux:
судо днф установить lsof
Просмотр открытых файлов в Linux с помощью lsof
Использовать lsof просто. Вы можете просто вызвать его в командной строке, чтобы увидеть все открытые файлы, принадлежащие вам:
lsof
lsof может отображать процессы, принадлежащие root, как «Отказано в доступе». Чтобы увидеть все файлы, открытые всеми процессами в масштабе всей системы, запустите его от имени пользователя root:
судо lsof
lsof покажет команду, PID, пользователя, вызвавшего ее, дескриптор файла, тип, устройство, размер, узел и абсолютный путь к открытому файлу.
Если вы попытаетесь размонтировать диск, например оптический, и получите сообщение об ошибке, что файлы используются, вы можете увидеть, какой процесс использует файл, а затем выйти или убить его.
Чтобы увидеть, какие интернет-сокеты в настоящее время используются в вашей системе, используйте -я вариант:
судо lsof -я
Вы можете обнаружить возможное вторжение, если заметите что-то подозрительное в своей системе, но более изощренные злоумышленники могут лучше замести следы.
-р опция переводит lsof в режим повтора, где он будет отображать результаты через определенный интервал, пока вы не нажмете Ctrl + С. По умолчанию он запускается каждые 15 секунд, но вы можете изменить его. Например, вы можете запускать команду каждые 10 секунд, набрав:
lsof -r 10
Как и в случае с другими утилитами Linux, вы можете комбинировать эти переключатели. Предположим, вы хотите следить за своим интернет-соединением каждые пять секунд. Вы можете сделать это с помощью lsof, набрав:
lsof -i -r 5
Теперь вы можете отслеживать, какие процессы Linux имеют открытые файлы
С помощью lsof вы можете отслеживать, какие процессы имеют открытые файлы, и устранять любые проблемы, которые они могут вызвать.
Открытые файлы — это всего лишь один из аспектов процессов Linux. Есть так много способов управлять процессами в Linux. Процессы в Linux легко запускать, останавливать и проверять, чтобы вы могли получить максимальную отдачу от своей системы.