Запрет на открытие определенных файлов

Рейтинг: 3Ответов: 1Опубликовано: 10.02.2015

В Linux системе надо сделать перехват открытия файла. Запретить открывать определенные файлы. Желательно это сделать через модуль (SELinux не рассматривать). Попытка была сделать через перехват, функции открытия (sys_call_table[__NR_open]), все хорошо, работает, но только в консоли (если запрет на файл стоит, то открыть и прочитать из него не получиться). НО если открыть этот файл через графическое отоброжение (gedit, к примеру), то файл легко открывается. Также пробовал сделать через LD_PRELOAD, но что-то не получилось. Есть какие-нибудь идеи?

strace gedit показывает, что функция open вообще там не учавствует, а только read и write. При попытке перехвата, read, получаю fd, связываю с именем файла, и опять же в консоли все работает, но при запуске через gedit запретного файла, вся система просто ложится. Даже логи не пишутся.
Код там: http://pastebin.com/psK8vX41

Ответы

▲ 1

Вот немного устаревшие статьи Кодим в ядре Linux`а №2 №3 №4 где предлагается перехватывать вызовы VFS, может это поможет?

Ещё любопытная ссылка по VFS Схема работы функции write()