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

8

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

Наша работа поддерживается каждую ночь, так что на самом деле нет ничего сложного в восстановлении нашей работы. Тем не менее, мы хотели бы выяснить, кто удалил его, чтобы мы могли противостоять им. Пока что лучшее, что мы придумали для нахождения нашего виновника, это проверка истории всех пользователей, но это долго и утомительно, и есть вероятность, что если за удалением каталога было злонамеренное намерение, наш преступник, вероятно, изменил бы их, чтобы скрыть свои следы. (или, конечно, они могут использовать другую оболочку).

Итак, какой самый простой и быстрый способ узнать, кто удалил каталог?

Спасибо заранее за ваше время.

Роб С.
источник
2
Я не думаю, что это возможно.
энзотиб
4
В следующий раз используйте систему контроля версий или SparkleShare (которая использует VCS git) или зашифрованную папку (используя [gnome- ] encfs ), синхронизированную с Ubuntu One или Dropbox.
dAnjou
@dAnjou На нашем сервере установлены git и subversion, но поскольку мы работали над веб-сайтом, на котором мы постоянно добавляли / удаляли файлы, это казалось ненужным хлопотом, связанным с использованием любого из них. Как я уже упоминал в своем вопросе, мы, вероятно, должны были создать группу и сделать каталог доступным только для нашей группы. Несмотря на это, мы можем вернуть всю нашу работу, так как мы ее поддержали. Сейчас меня беспокоит то, что я не хочу, чтобы пользователь удалял каталоги в системе, с которыми он не связан. Я доверяю всем своим пользователям не делать что-то подобное, так что это действительно беспокоит меня.
Роб С.
Да, не возможно.
psusi
1
Вы можете следить за удалением (или модификацией) файлов. Смотрите cyberciti.biz/tips/… иman auditctl
Лекенштейн

Ответы:

5

Я не нашел волшебную пулю ответ на ваш вопрос; часть этой причины подробно описана здесь: /superuser/178596/checking-user-command-history-in-unix

Эта простая команда может помочь вам отследить, что произошло, выполнив поиск команд rm & mv во всех файлах истории оболочки во всех домашних каталогах пользователей:

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;

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

Пример: добавление группы и добавление в нее членов команды проекта

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

рекурсивно устанавливайте разрешения правильно и гарантируйте доступ к команде в будущем независимо от того, кто создает / редактирует файлы

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;

(2 устанавливает владение группой как «липкое», это гарантирует, что владелец группы любого проекта остается «крутым»)

find /path/to/projectdir -type f -exec chmod 664 {} \;

Надеюсь, это поможет тебе! B-)

Чад Стоверн
источник
Спасибо! Я изменил вашу команду на "find / home -type f -iname. * History -print -exec grep" rm \ | mv "{} \;", чтобы я мог получить имена файлов историй, которые открыли интересную информацию.
Роб С.
отличный Роб! рада, что я могу помочь. =)
Чад Стоверн
1

Теоретически можно узнать время удаления, так что это может сузить пользователей.

Проверьте i_dtime в ext2 спецификации .

организовать
источник