Это связано с вопросом, заданным мной некоторое время назад.

Я хочу записать подробности о том, кто перезапустил конкретный сервис в Linux.

Например:

Если пользователь X перезапускает apache, он регистрирует имя пользователя, время, службу (то есть apache) и статус (успех / сбой).

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

Но это было бы невозможно, потому что у меня есть тысячи серверов и десятки сервисов.

Есть ли другой способ, которым я могу сделать это, не манипулируя сценарием запуска службы?

1 ответ1

1

Я бы предложил заблокировать систему. Требовать от пользователя использовать sudo , разрешать выполнение только определенных команд с помощью sudo и запрещать запуск произвольных команд, запрещая такие вещи, как sudo su и sudo bash .

sudo будет регистрировать все команды, выполненные через него, включая, конечно, перезапуски сервиса. На моей машине он регистрируется в /var/log/secure , который доступен для чтения только пользователю root .

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

Таким образом, пользователь напечатает:

sudo wrapper_script start service

или что-то типа того.

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

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