6

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

У кого-нибудь есть идея?

5 ответов5

9

Вы можете использовать пакет audd , как предложено в другом ответе. Простое использование будет:

audctl -w /etc /passwd -p war -k пароль-файл

который будет наблюдать за ш обряда, в ppend, операции г EAD на этот файл.

Затем вы можете получить журналы аудита с помощью команды:

ausearch -f /etc /passwd

Эти примеры взяты из этой статьи, которая предоставляет более полный обзор этих команд. Пакет audd обычно включает эти команды.

Если вас интересуют только операции над файлами, а не кто фактически выполнял эти операции, вы можете использовать команду inotifywatch вместо включения аудита. Обычно это доступно через пакет inotify-tools . Он записывает события файловой системы, используя интерфейс inotify linux.

3

Auditd твой друг.

Страница руководства Auditd

Хотя по умолчанию еще не установлен в большинстве дистрибутивов Linux.

2

Ну, если вы имеете в виду в прошлом, вы, вероятно, не сможете, если у вас не включен какой-то одитинг.

Предполагая, что вы этого не сделаете, вы можете посмотреть права доступа к файлу и каталогам, чтобы узнать, кто имеет доступ. Вы можете использовать каждый файл .bash_history для имени файла.

И это все, насколько я знаю. Если они все еще открыты, вы можете использовать, например, lsof.

0

Другой способ сделать это - inotify, http://www.ibm.com/developerworks/linux/library/l-inotify.html.

0

Команда fuser делает именно это. Кроме того, lsof делает аналогичную работу.

Обратите внимание, что в большинстве дистрибутивов fuser обычно предустанавливается, хотя, по моему опыту, lsof встречается реже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .