Мониторинг доступа к файлам Linux

Есть ли какой-либо способ в unix узнать, кто обратился к определенному файлу за последнюю неделю? Это может быть пользователь или какой-то скрипт ftp в каком-то другом месте. Могу ли я получить список имен пользователей, которые обратились к определенному файлу? Как я могу узнать, кто обращается к конкретному файлу?

5 Solutions collect form web for “Мониторинг доступа к файлам Linux”

Если у вас нет чрезвычайно необычных политик ведения журнала, которые обратились к тому, какой файл не зарегистрирован (это будет огромный объем информации). Вы можете узнать, кто вошел в систему в какое время в системных журналах; last команда дает вам историю входа, а другие журналы, такие как /var/log/auth.log , расскажут вам, как пользователи аутентифицировались и откуда они вошли (какой терминал или какой хост, если удаленно).

Дата последнего чтения файла называется временем доступа или коротко . Все файловые системы unix могут хранить его, но многие системы не записывают его, поскольку он имеет (как правило, небольшое) ограничение производительности. ls -ltu /path/to/file или stat /path/to/file показывает время доступа файла.

Если пользователь обратился к файлу и не пытался скрыть свои следы, его история оболочки (например, ~/.bash_history ) может иметь ключи.

Чтобы узнать, кто или кто имеет файл, открывайте его сейчас, используйте lsof /path/to/file .

Чтобы регистрировать, что происходит с файлом в будущем, существует несколько способов:

  • Используйте inotifywait . inotifywait -e /path/to будет печатать /path/to/ ACCESS file line /path/to/ ACCESS file когда кто-то читает file . Этот интерфейс не укажет вам, кто обратился к файлу; вы можете вызвать lsof /path/to/file как только появится эта строка, но есть условие гонки (доступ может быть завершен временем lsof).

  • LoggedFS – это стекируемая файловая система, которая предоставляет представление о дереве файловой системы и может выполнять более удобное протоколирование всех доступов через это представление. Чтобы настроить его, см. Синтаксис файла конфигурации LoggedFS .

  • Вы можете использовать подсистему аудита Linux для регистрации большого количества вещей, включая доступ к файловой системе. Убедитесь, что демон auditd запущен, а затем настройте то, что вы хотите зарегистрировать с помощью auditctl . Каждая зарегистрированная операция записывается в /var/log/audit/audit.log (в типичных дистрибутивах). Чтобы начать просмотр определенного файла:

     auditctl -w /path/to/file 

    Если вы поместите часы в каталог, рекурсивно просматриваются файлы в нем и его подкаталоги рекурсивно.

Предыдущий ответ – не самая лучшая практика для того, чтобы делать то, что вы просите. У Linux есть API для этого. API-интерфейс inotify http://linux.die.net/man/7/inotify

  1. Вы можете написать программу на C, чтобы сделать то, что вы хотите, просто вызвать API-интерфейс inotify
  2. Вы можете использовать kfsmd, http://www.linux.com/archive/feature/124903, демона, который использует inotify
  3. Если вы хотите что-то, что работает на разных платформах ( inotify – это конкретный Linux), и вы используете Java, JNotify работает на разных платформах (Linux, Mac, Windows), абстрагируя базовый API собственной ОС.

Вышеприведенный пример с inotifywait должен быть одним из (см. Справочную страницу для получения дополнительной информации):

 inotifywait /path/to/file inotifywait -e open /pat/to/file 

Или с режимом мониторинга и временной меткой:

 inotifywait -m --format '%w:%e:%T' --timefmt '%F %T %Z %z' 

Это, в общем, невозможно. Я видел файловые системы с достаточным аудитом, чтобы сделать это возможным так или иначе, но это не общая вещь Unix, нет.

Позвольте мне Google, что для вас … Да, вы можете! В этой статье показано, как использовать auditctl, ausearch и aureport для ядер Linux 2.6 и выше. Это представляет собой довольно полное руководство.

Я уверен, что есть накладные расходы и пространство, чтобы рассмотреть, но для чего-либо, что требует соблюдения нормативных требований или высокой безопасности, это всего лишь стоимость ведения бизнеса.

  • Как собрать статистику появления байтов в двоичном файле?
  • Лучший способ синхронизации файлов - копировать только СУЩЕСТВУЮЩИЕ файлы и только если NEWER, чем целевой
  • Как обрезать байты с начала и конца файла?
  • Получить самый новый файл из структуры каталога год / месяц / дата / время
  • Сортировка файлов в папки, в зависимости от типа файла
  • Почему файловая система unix не сохраняет время создания файла?
  • Есть ли более быстрый способ поиска определенных файлов, чем поиск?
  • Как вставить файлы с тем же именем из разных каталогов?
  • Как сравнить размеры файлов в двух каталогах?
  • Linux Mint 17.2 внезапно теряет доступ на запись в файловую систему
  • Возможно ли узнать, кто посетил мой домашний каталог?
  • Interesting Posts

    Что делать после отмены «rm -rf / usr /» на Arch?

    on osx vim 7.3 set number set relative number not working

    Печать на Linux CUPS-принтер от Mac El Capitan – заполняет error_log и не печатает

    Удаленный ПК, доступный с помощью ssh, scp / rsync, не работает (больше)

    Как добавить шлюз IPv6?

    Не удалось подключиться к домену: не удалось установить типы шифрования машинного кебероса: Недостаточный доступ

    Обходной режим CLIENT (порт smtps / 465) не реализован

    Как отменить экспорт DISPLAY в Linux?

    Как перейти к началу командной строки, когда я нахожусь внутри экрана?

    Сопоставление между именами логических и физических блоков

    обработка нескольких оконных менеджеров, несколько файлов .xsessionrc?

    Не удается запустить презентацию на сеансе удаленной консоли компьютера из сеанса SSH

    Как получить текст страницы с помощью wget без html?

    Поиск строки в выводе команды

    Как запустить KDE Plasma 5 при запуске на FreeBSD 11.2?

    Linux и Unix - лучшая ОС в мире.