Estou configurando o Nagios em alguns dos meus servidores Linux e tive um problema. O check_ide_smart
plug-in requer acesso root ao sistema para ser executado. Para executá-lo, eu uso o check_by_ssh
plug-in para ssh na conta nagios no host remoto e, em seguida, corro check_ide_smart
usando o sudo.
Inicialmente, adicionei as seguintes linhas /etc/sudoers
para permitir que o programa funcione:
nagios ALL=NOPASSWD: /usr/lib/nagios/plugins/check_ide_smart
Enquanto isso funcionava bem quando executado localmente, eu estava tendo um problema quando foi executado no Nagios: nenhum TTY estava sendo gerado, o que impedia o plug-in de funcionar.
Eu procurei na página de manual do sudo e encontrei a opção -s, que gera um shell e executa o programa lá. Quando tentei usar sudo -s
, tive problemas de permissão, pois o -s aparentemente altera o comando para /bin/bash -c /usr/lib/nagios/plugins/check_ide_smart
, o que não é permitido pelo arquivo sudoers. Tentei alterar o arquivo sudoers para usar esse comando, mas isso não funcionou, e usar aspas é um erro de sintaxe.
Acabei conseguindo funcionar usando a seguinte linha em /etc/sudoers
:
nagios ALL=/bin/bash
Isso me parece realmente errado, pois estou permitindo que o usuário do nagios crie um shell raiz, com o qual ele possa fazer qualquer coisa.
Nesse ponto, pensei que talvez, colocando o comando em um script de shell em que o usuário do nagios tenha privilégios de somente leitura funcionasse, então criei um script de shell:
#!/bin/sh
/bin/bash -c /usr/lib/nagios/plugins/check_ide_plugin $@
Infelizmente, nunca consegui que os parâmetros passados ( Edit: Eu precisava citar o $@
) funcionassem corretamente com o plug-in, então não sei se isso funcionaria. $@
para que ele funcione. Obrigado @derobert e @pjz. Ainda não sei se funcionaria desde que o fiz funcionar usando a solução do @ Arthur Arthur.
Existe uma maneira de começar sudo -s
a trabalhar sem permitir a desova de um shell raiz?
Responda:
Adicionada a seguinte linha em /etc/sudoers
:
nagios ALL=NOPASSWD: /bin/bash -c /usr/lib/nagios/plugins/check_ide_smart *
Observe o asterisco à direita; sem ele, isso não funciona. Obrigado @ Mike Arthur pela resposta.