Desligamento Debian do script php

0

Eu estou tentando desligar meu RaspberryPi rodando Raspbian de um script php em execução no servidor web lighttpd. shell_exec("sudo /sbin/shutdown -h now 2>&1");

Eu adicionei lighttpd ALL=(ALL) NOPASSWD: /sbin/shutdown ao meu arquivo / etc / sudoers e verifiquei Defaults !requiretty está definido.

Eu ainda recebo "sudo: no tty presente e nenhum programa askpass especificado" ao executar o script.

Alguém pode me ajudar por favor? Obrigado!

frsc
fonte
Eu acho que você pode querer o shell_exec função em vez de exec desde que é um comando shell (acho que é assim que funciona). Eu não estou 100% de certeza (daí o comentário), mas pode valer a pena tentar.
nerdwaller
Redirecionamento de saída ( 2>&1 ) requer uma concha; tente remover isso do comando e veja se você obtém um resultado diferente.
Aaron Miller
Obrigado por seus comentários. Na verdade, eu já tentei shell_exec em primeiro lugar. Acabei de copiar o comando errado para a minha pergunta. E exec ("sudo / sbin / shutdown -h now"); não funciona também.
frsc
Você tem certeza que o lighttpd está rodando como usuário lighttpd? Em um script php, echo `whoami`; Pode ser www-data ou http
WJDev

Respostas:

1

O Lighttpd pode não estar sendo executado como usuário lighttpd.

Em um script PHP, escreva o seguinte para descobrir com que usuário ele é executado:

echo shell_exec('whoami');

Pode ser www-data ou http em vez de.

WJDev
fonte
Obrigado ElanMan pela sua dica. O usuário correto era de fato www-data e não lighttpd, já que li alguma coisa em outro lugar. Agora funciona como esperado.
frsc