Общесистемный доступ к файлам и мониторинг системных вызовов в Linux?

В среде Windows вы можете запустить Procmon (Process Monitor) из Sysinternals, который покажет вам каждый доступ к файлу, запрос реестра и т. Д. В масштабе всей системы (скриншот прилагается). Затем вы можете вернуться назад, чтобы узнать, какие процессы касаются / обращаются к определенному файлу (или запросу реестра).

В мире Linux мне иногда нужно выяснить, какие процессы обращаются к определенному файлу в системе - но я понятия не имею, на какой процесс начать смотреть. Мне известно о strace, и я знаю, что могу присоединить его к нескольким процессам, но есть ли способ вывести каждый доступ к файлам глобально под Linux?

Пример ProcMon в Windows

0
задан 30 May 2020 в 01:34
2 ответа

Sysdig сделает то, что вы ищете. Однако для этого требуется root-доступ и модуль sysdig-probe.

1
ответ дан 4 January 2021 в 09:20

Конечно, это Linux, есть несколько способов сделать это.

Метод трассировки. Скрипты , использующие ftrace или eBPF для трассировки всего, что есть в ядре. В этом примере open () см. opensnoop . Вы можете фильтровать по PID или имени файла. Очень мощный, и его можно использовать по отдельности, но не всем пока удобно писать сценарии проверки ядра.

Метод аудита. Настройте правила auditd для регистрации определенных обращений к файлам или системных вызовов. Следуйте примерам отслеживания пути «Подсистема аудита Linux использовалась в корпоративных средах для обеспечения соответствия требованиям. Документирована, хорошо ведет журнал, но не может контролировать все на лету.

2
ответ дан 4 January 2021 в 09:20

Теги

Похожие вопросы