Precisa dar uma permissão de usuário não privilegiada para executar o script apachectl

0

Eu quero que um usuário comum consiga executar o apachectl no sistema. E isso seria a única coisa que eles podem fazer fora de suas permissões normais. O que eu fiz foi adicionar essa linha na parte inferior do arquivo sudoers:

sampleuser ALL=(root)      NOEXEC:/usr/sbin/apachectl

Então, como useruseruser, eu executei o comando apachectl e recebo este erro:

$ sudo apachectl stop 
[sudo] password for sampleuser: 
/usr/sbin/apachectl: line 105: /usr/sbin/httpd: Permission denied

Agora, parece que a permissão é com o comando / usr / sbin / httpd, pois o script apachectl chama esse arquivo executável. Então, adicionei outra linha ao arquivo sudoers:

sampleuser ALL=(root)      NOEXEC:/usr/sbin/httpd

Agora eu executei o mesmo comando e recebo o mesmo erro:

sudo apachectl start
[sudo] password for sampleuser: 
/usr/sbin/apachectl: line 105: /usr/sbin/httpd: Permission denied

Minha pergunta agora é se há uma correção para isso sem ter que editar o arquivo de script do apachectl ou outro método que provavelmente é mais fácil do que o que estou tentando fazer.

Obrigado.

    
por VaTo 02.05.2018 / 21:43

1 resposta

0

O Apachectl não sabe que precisa usar o sudo para executar o httpd

Tente algo assim:

APACHE_HTTPD='sudo -E /usr/sbin/httpd' sudo -E /usr/sbin/apachectl start

-E, --preserve-env
             Indicates to the security policy that the user wishes to reserve their
             existing environment variables.  The security policy may eturn an error
             if the user does not have permission to preserve the environment.

Então você vai forçar o apache2ctl a usar um comando diferente para chamar o httpd ...

    
por 02.05.2018 / 22:03