<?php echo exec("whoami"); ?>
Editar o /etc/sudoers, este arquivo tem que ter permissões apenas de leitura, não pode ficar com permissões de escrita, por isso antes de editar o arquivo dê permissões de escrita:
# chmod u+w /etc/sudoers
Depois de editar, tire a permissão de escrita:
# chmod u-w /etc/sudoers
Então adicionar no /etc/sudoers no fim do arquivo:
%USUARIO_DO_PHP ALL= NOPASSWD: /CAMINHO/DO/COMANDO
Se não colocar no fim do arquivo pode ter outra regra depois que anule esta nova regra.
No PHP é só executar o comando com o SUDO:
<?php echo exec("sudo /CAMINHO/DO/COMANDO.sh"); ?>
Caso não tenha sucesso, verifique os logs de segurança:
# tail -n 100 /var/log/secure
Se tiver esta mensagem de erro:
May 18 16:56:41 SERVIDOR sudo: USUARIO_DO_PHP : sorry, you must have a tty to run sudo ; TTY=unknown ; PWD=/PASTA/DO/PHP ; USER=root ; COMMAND=/CAMINHO/DO/COMANDO
Então é preciso ir no /etc/sudoers e comentar a seguinte linha que contém o "Defaults requiretty", assim:
# Defaults requiretty
Assim deverá funcionar.
Muito bom!
ReplyDeleteExcelente!
ReplyDeleteAtt,
Renan