Запишите данные пользователя, который перезапустил службу

Запишите данные пользователя, который перезапустил службу

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

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

Например:

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

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

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

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

решение1

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

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

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

Итак, пользователь должен ввести:

sudo wrapper_script start service

или что-то вроде того.

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

Связанный контент