Registrar detalhes do usuário que reiniciou um serviço

Registrar detalhes do usuário que reiniciou um serviço

Isso está relacionado a uma pergunta feita por mim há algum tempo.

Quero registrar os detalhes de quem reiniciou um serviço específico no Linux.

Por exemplo:

Se um usuário X reiniciar o Apache, ele registrará nome de usuário, hora, serviço (ou seja, Apache) e status (sucesso/falha).

Posso fazer isso escrevendo um pequeno script e adicionando-o manualmente ao script de inicialização do serviço.

Mas isso não seria possível porque tenho milhares de servidores e dezenas de serviços.

Existe alguma outra maneira de fazer isso sem manipular o script de inicialização do serviço?

Responder1

Eu sugeriria bloquear o sistema. Exija que o usuário use sudo, permita apenas que comandos específicos sejam executados usando sudo, e proíba a execução de comandos arbitrários proibindo coisas como sudo sue sudo bash.

sudoregistrará todos os comandos executados por meio dele, incluindo, é claro, reinicializações de serviço. Na minha máquina, ele registra em /var/log/secure, o que só pode ser lido por root.

No entanto, isso não lhe dá a última coisa que você deseja: sucesso ou fracasso. Mas você poderia facilmente implementar esse log extra com um script wrapper, que poderia exigir que o usuário usasse em vez de iniciar o serviço diretamente - apenas tome cuidado para tornar o script wrapper seguro!

Então o usuário digitaria:

sudo wrapper_script start service

ou algo assim.

Observe que os registros do sudoamboso usuário original e o usuário que eles estão usando como sudo (por padrão, root).

informação relacionada