Назад | Перейти на главную страницу

Как узнать, кто удаляет файлы на сервере Linux?

У нас есть Linux-сервер Ext4 и еще один Linux-сервер с ISCSI, где клиенты Windows имеют общие папки.

  1. Разрешить пользователям изменять файлы, но не удалять их. Пользователь имеет разрешение на изменение содержимого, но не может удалять сами файлы.
    1. Аудит всех операций добавления / удаления / изменения файлов в формате журнала, аналогичном английскому.
    2. Отправлять оповещения, если предпринимаются попытки удалить дважды

Я бы рекомендовал проверить audit - http://people.redhat.com/sgrubb/audit/

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

Если клиенты Windows монтируют общие ресурсы Samba / CIFS, вам следует проверить модуль full_audit.so для Samba.

Samba: ведение журнала активности пользователей

Samba - журнал аудита файлов с full_audit

Поиск в Google - samba full_audit

Ознакомьтесь с инструментами inotify или, если вы программист, можете создать свой собственный, который подходит. Это не так сложно сделать; самая сложная часть - это отслеживать все подкаталоги и иметь дело с добавлением / удалением / переименованием каталогов.

У меня есть программы на основе inotify, работающие на нескольких моих серверах. Например, на том, где хранятся мои отсканированные личные документы (счета, квитанции и др.), У меня есть программа, которая отслеживает новые файлы в дереве каталогов. Когда создается новый документ, он сразу же шифруется PGP (если, конечно, новый документ не зашифрован pgp). Другая, похожая программа отправляет любые изменения в определенном дереве на другой сервер, расположенный далеко.

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

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

Использовать Linux :: Inotify2 Perl модуль. Напиши Perl скрипт и сохраните его как работающий демон.

В определенном каталоге вы можете следить за следующими событиями:

IN_ACCESS            object was accessed
 IN_MODIFY            object was modified
 IN_ATTRIB            object metadata changed
 IN_CLOSE_WRITE       writable fd to file / to object was closed
 IN_CLOSE_NOWRITE     readonly fd to file / to object closed
 IN_OPEN              object was opened
 IN_MOVED_FROM        file was moved from this object (directory)
 IN_MOVED_TO          file was moved to this object (directory)
 IN_CREATE            file was created in this object (directory)
 IN_DELETE            file was deleted from this object (directory)
 IN_DELETE_SELF       object itself was deleted
 IN_MOVE_SELF         object itself was moved
 IN_ALL_EVENTS        all of the above events

 IN_ONESHOT           only send event once
 IN_ONLYDIR           only watch the path if it is a directory
 IN_DONT_FOLLOW       don't follow a sym link
 IN_MASK_ADD          not supported with the current version of this module

 IN_CLOSE             same as IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
 IN_MOVE              same as IN_MOVED_FROM | IN_MOVED_TO