Registrar detalles del usuario que reinició un servicio

Registrar detalles del usuario que reinició un servicio

Esto está relacionado con una pregunta que hice hace algún tiempo.

Quiero registrar los detalles sobre quién reinició un servicio en particular en Linux.

Por ejemplo:

Si un usuario X reinicia Apache, registrará el nombre de usuario, la hora, el servicio (es decir, Apache) y el estado (éxito/fallo).

Puedo hacer esto escribiendo un pequeño script y agregándolo manualmente al script de inicio del servicio.

Pero esto no sería posible porque tengo miles de servidores y decenas de servicios.

¿Hay alguna otra manera de hacer esto sin manipular el script de inicio del servicio?

Respuesta1

Yo sugeriría bloquear el sistema. Exija que el usuario use sudo, solo permita que se ejecuten comandos específicos usando sudoy no permita la ejecución de comandos arbitrarios prohibiendo cosas como sudo suy sudo bash.

sudoregistrará todos los comandos ejecutados a través de él, incluidos, por supuesto, los reinicios del servicio. En mi máquina inicia sesión en /var/log/secure, que solo es legible por root.

Sin embargo, eso no le dará lo último que deseaba: éxito o fracaso. Pero podría implementar fácilmente ese registro adicional con un script contenedor, que podría requerir que el usuario lo use en lugar de iniciar el servicio directamente; ¡solo tenga cuidado de que el script contenedor sea seguro!

Entonces el usuario escribiría:

sudo wrapper_script start service

o algo así.

Tenga en cuenta que sudo registraambosel usuario original y el usuario como sudo (por defecto, root).

información relacionada