1

Я запускаю долго работающую программу на сервере Linux. Многие другие пользователи также запускают свои программы на этом сервере. У всех нас есть разрешения sudo.

Предположим, что озорной пользователь убивает мою работающую программу, скажем, с помощью sudo kill или sudo pkill . Как мне узнать, кто этот пользователь?

2 ответа2

1

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

В моей системе каждый раз, когда используется sudo, вся командная строка сохраняется в журнале. Я полагаю, ваша система может делать то же самое. В OpenBSD это /var /log /authlog, а в системе Debian - /var/log/auth.log

Если вы не знаете, в каком файле хранится такая информация, попробуйте выполнить команду sudo. (Неважно, что вы делаете с sudo: даже echo будет достаточно. Цель состоит в том, чтобы изменить журналы, которые модифицируются при использовании sudo.) Тогда используйте

ls -ltr /var/log/*auth*

или же

ls -ltr /var/log | tail

чтобы найти недавно измененные файлы.

1

Если у вас всех есть sudo , то не существует гарантированного способа сохранить доказательства убитого процесса, поскольку любые доказательства могут быть удалены с одинаковым уровнем разрешения.

Вы можете использовать аудиторский аудит auditd для отслеживания определенных системных вызовов, таких как kill.

Очевидно, что пользователь root может сначала остановить демон аудита, а затем удалить журналы. Таким образом, вы хотите экспортировать журналы извне.

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

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