Como executar o comando sem “sudo”?

1

O Nagios no meu servidor não está funcionando corretamente. Não pode executar o comando lftp sem "sudo". Existe uma maneira de permitir que nagios executem comandos sem usar "sudo"?

Meu /etc/group : nagios:x:107:www-data,nagios

Script usando lftp: -rwxr-xr-x 1 root nagios 3667 říj 20 12:20 check_ftp_fully

/usr/bin/lftp : -rwxr-xr-x 1 root root 924936 srp 7 2013 lftp

Btw eu tentei esta resposta sem sucesso. Ainda não funciona.

EDIT : O script é chamado pelo Nagios como $USER5$/check_ftp_fully.sh <username> <password> <port> . O script de verificação é aqui . Falha ao listar um diretório ( FTP check failed when trying to list the contents of a directory. )

EDIT2: O problema Nagios não é tão importante quanto o conhecimento IF e HOW como posso executar comandos sem "sudo". Por exemplo. mkdir em /etc

    
por Jakub Turcovsky 20.10.2014 / 13:02

2 respostas

2

The script is called by Nagios as ./check_ftp_fully.sh

O principal ./ aqui sugere que você está executando o script no diretório onde o script reside. Eu estou especulando que você não tem acesso de gravação para este diretório (como de fato você não deveria). Altere o script de chamada para que ele seja executado em seu diretório inicial (ou, digamos, /tmp ) com um caminho completo para o script check_ftp_fully.sh . Melhor ainda, ou mesmo além disso, altere o script de teste para que ele crie um diretório temporário e o remova quando estiver pronto (mesmo no caso de, por exemplo, um erro de sintaxe; consulte trap )

    
por 20.10.2014 / 17:31
1

pode haver várias soluções

  1. ou habilitar nagios no arquivo sudoers para executar sudo sem confirmação de senha e de check_ftp_fully executar o 'sudo lftp'

  2. setuid no lftp

ambos podem ser uma violação de segurança, isto depende de quais portas você deseja abrir:)

    
por 20.10.2014 / 13:21