The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Мониторинг обращений к файловой системе"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Мониторинг обращений к файловой системе"  +/
Сообщение от medb (ok) on 28-Мрт-09, 20:29 
Мне нужно написать программу которая ведёт журнал обращений к файловой системе линукса (к конкретной папке).

Пробовал использовать для этих целей inotify, но эта технология реагирует только на состоявшиеся события (чтение, открытие и т.д.), а мне нужно журналировать и неудачные попытки обращения к ФС (пользователь не имеющий прав пытается открыть/редактировать папку/файл).

Вопрос: с помощью каких механизмов/технологий это можно зделать? Или, если такие програмы уже существуют, то как они называются?

П.С.
Знаю что можно через перехват системных вызовов, но для этого нужно патчить ядро (у меня 2.26), но хотелось бы как то попроще/покультурнее...

П.П.С
Пишу под Убунту 8.10 на С++

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Мониторинг обращений к файловой системе"  +/
Сообщение от JohnProfic on 28-Мрт-09, 20:58 
>Мне нужно написать программу которая ведёт журнал обращений к файловой системе линукса
>(к конкретной папке).

FUSE? Т.е. создается виртуальная ФС, которая переадресуя куда нужно все обращения, их еще и протоколирует.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Мониторинг обращений к файловой системе"  +/
Сообщение от pavel_simple (ok) on 28-Мрт-09, 21:06 
>[оверквотинг удален]
>
>Вопрос: с помощью каких механизмов/технологий это можно зделать? Или, если такие програмы
>уже существуют, то как они называются?
>
>П.С.
>Знаю что можно через перехват системных вызовов, но для этого нужно патчить
>ядро (у меня 2.26), но хотелось бы как то попроще/покультурнее...
>
>П.П.С
>Пишу под Убунту 8.10 на С++

auditd?
systemtap?
selinux?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Мониторинг обращений к файловой системе"  +/
Сообщение от Avonim on 28-Мрт-09, 23:47 
blktrace ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Мониторинг обращений к файловой системе"  +/
Сообщение от pavel_simple (ok) on 29-Мрт-09, 00:09 
>blktrace ?

ага и strace Ж:-)

и почему google ещё не у всех работает, нужно им пожаловаться.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Мониторинг обращений к файловой системе"  +/
Сообщение от medb (ok) on 29-Мрт-09, 00:40 
Всем спасибо за ответы, но я забыл нагласить, что я пишу программу (на самом деле это лабораторная) и журналирование это одна из её функций, поэтому предпочтительней было бы использовать не отдельный демон/програму, а технологию которую можно интегрировать в мою програму (чтото похожее на inotify).

Если использовать fuse, то нужно много переписывать/розбиратся, а все остальные варианты - это отдельные программы, и про strace я знал))

Так как насчёт программирования, как эти программы/демоны написаны? как они перехватывают системные вызовы к ФС (в часности auditd)?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Мониторинг обращений к файловой системе"  +/
Сообщение от gaa (ok) on 29-Мрт-09, 00:57 
>Так как насчёт программирования, как эти программы/демоны написаны? как они перехватывают системные вызовы к ФС (в часности auditd)?

Скачай исходник, да посмотри.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Мониторинг обращений к файловой системе"  +/
Сообщение от Pavel Selivanov email on 30-Июл-09, 07:20 
>Мне нужно написать программу которая ведёт журнал обращений к файловой системе линукса
>(к конкретной папке).
>
>Вопрос: с помощью каких механизмов/технологий это можно зделать? Или, если такие програмы
>уже существуют, то как они называются?

1. Можно заменить системный вызов open.
LD_PRELOAD=/your/lib/wrapper.so
export ее надо сразу из init.

Сразу одно НО: Этот механизм часто не работает (по соображениям безопасности) в программах с SUID.

2. Можно написать драйвер - обертку.
За пример я бы взял не FUSE (незачем для такой задачи весь поток прогонять через userspace), а aufs или unionfs.
Дальше вопрос через что проще отдавать в userspace.

3. Зарегистрировать обработчик обращений к fs.
Навскидку не скажу, посмотреть можно в ядреной части kaspersky/drweb(если есть исходники), любой антивирь-монитор, FAM.
http://wiki.linuxquestions.org/wiki/FAM
Там кстати ответ на твой вопрос - волшебное слово dnotify.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру