Как вы защищаете файл от редактирования внешней программой или пользователем, даже если этот пользователь каким-то образом получил привилегии root. Допустим, у меня есть этот файл F, который я должен защитить, и по умолчанию только root и пользователь могут выполнять, читать и записывать в F, все остальные имеют только разрешение на чтение.
Допустим, у меня есть программа, которая защищает критический файл F и обнаруживает, что обстоятельства редактирования необычны и, похоже, что безопасность системы может быть скомпрометирована. Как предотвратить сохранение изменений в файле F? Если возможно, также убейте ту программу, которая пыталась внести это изменение.
Я обнаружил, что фьюзер может убить этот процесс, но не раньше, чем будут нанесены какие-либо модификации, т. е. повреждения. Я использую inotify для обнаружения изменений. Моя проблема в том, что большинство редакторов создают временный файл, вносят изменения, а затем сохраняют его в исходный файл. Хотя я получаю такие события, как IN_OPEN, IN_CLOSENOWRITE и другие, я получаю IN_CLOSEWRITE и IN_CLOSEMODIFY только после завершения события? Как остановить изменение моего файла F?
Я понимаю, что моя программа может быть убита после того, как кто-то проникнет в систему, но могу ли я как-то сохранить то немногое, что могу?
Изменить: я забыл упомянуть, что не могу изменить права доступа к любому отслеживаемому файлу.
Изменить № 2: у меня есть набор файлов, которые нужно постоянно контролировать. Моя программа будет работать в фоновом режиме и отмечать изменения в этих файлах. Все файлы, как я писал ранее, могут быть отредактированы и выполнены с правами root, но есть действия (модификации), которые могут быть нежелательными и, скорее всего, будут означать, что кто-то получил root-доступ и отредактировал эти критические файлы. Мне нужно остановить эти вредные изменения. Из ответов я как-то предполагаю, что мне нужно будет сделать снимок этих файлов. Но проблема в том, что количество файлов может быть огромным, от 1 до 4 миллионов. Приветствуются любые решения, которые эффективнее, чем решение моментального снимка.
chattr +i file_to_protect
. Подробнее см.man chattr
. - person pmg   schedule 17.02.2012