Перехват событий доступа к файлам

с zsh:

print -rl -- **/*.(rar|zip)(DoL)

Замените на ls -lUd --, если хотите увидеть ls -l информацию о них (-U, являющихся расширением GNU).

Обратите внимание, что он сортируется по размеру, а не по использованию диска.

0
27.11.2017, 13:00
2 ответа

Модули безопасности Linux предназначены для управления доступом к таким ресурсам, как файлы:

LSM was designed to provide the specific needs of everything needed to successfully implement a mandatory access control module... LSM inserts "hooks" (upcalls to the module) at every point in the kernel where a user-level system call is about to result in access to an important internal kernel object such as inodes and task control blocks.

Чтобы реализовать это, я думаю, вам придется создать драйвер устройства, который будет передавать такие события, как «open()был вызван. VLC открывает zip-файл с видео в нем» пользователю -space, который разархивирует соответствующий файл и вернет имя разархивированного файла, которое ваш LSM-модуль затем передаст фактическому вызову ядра open. А затем в соответствующем вызове close()вы передадите это событие из вашего модуля LSM в процесс пользовательского пространства -, чтобы он мог удалить разархивированный видеофайл.

Это не тривиальное предприятие. Среди прочего, вам нужно быть очень осторожным, чтобы не создать огромные дыры в безопасности :"Эй, эту штуку можно использовать для перезаписи /etc/shadow!"

2
28.01.2020, 04:39

Я не уверен, позволяют ли функции Solaris по умолчанию отслеживать вызовы open(), но можно контролировать доступ для записи.

Проверьте справочные страницы, например. port_create()и загляните в /usr/include/port.h.

Также может быть интересно проверить usr/src/cmd/tail на Illumos для tail -fреализации, управляемой событиями.

-1
28.01.2020, 04:39

Теги

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