CentOS 7 Apache executa / executa o pedido da web como usuário root

0

Eu tenho um utilitário PHP que aceita post request com file como parâmetro. Agora, quando essa solicitação é recebida, quero executá-la como usuário root. Por exemplo, quando o usuário acessa www.mydomain.com/sendtextfiletoftp.php do carteiro ou de qualquer outra ferramenta, ele deve ser executado como usuário root.

Eu me cansei com sudo visudo e adicionei linhas abaixo ao arquivo sudoers, mas ainda assim a requisição é executada com o usuário apache

www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

O mesmo arquivo quando executado como usuário sudo a partir da linha de comando ( sudo php72 /path/to/file/sendtextfiletoftp.php ) funciona bem.

Obrigado pela ajuda.

    
por harnish 03.08.2018 / 17:44

1 resposta

0

Além de permitir que o usuário do apache se torne root para um comando, você precisa fazer uma chamada dentro do código que inclui 'sudo'. Tipicamente:

Em visudo eu colocaria algo como

apache ALL = NOPASSWD: / caminho / meu_comando_commando

No meu código /var/www/html/sendtextfiletoftp.php, para a parte específica que precisa de acesso root, colocaria algo como:

exec ("sudo / caminho / meu_comando_comando");

    
por 03.08.2018 / 18:24