shell

Recentemente precisei trabalhar com comandos Shell para controlar uma rotina no Cent’Os instalado no servidor da empresa, apanhei um pouco até conseguir executar com sucesso os procedimentos, mas depois que consegui fiquei rindo de mim mesmo.

Vamos lá!
Se você rodar algo assim por exemplo, vai funcionar perfeitamente:

<?php
shell_exec("mkdir /var/spool/mail/exemplo");
?>

No código acima estou criando uma pasta dentro de /var/spool/mail/
Agora se você executar um comando tipo este abaixo, irá precisar estar como super-usuario, caso contrário o script não irá funcionar adequadamente:

shell_exec("chown mail.mail /var/spool/mail/exemplo");

Para resolver este problema de forma simples, você pode colocar apenas um sudo na frente da instrução, veja abaixo:

shell_exec("sudo chown mail.mail /var/spool/mail/exemplo");

Observação: A função shell_exec do php não trabalha como super-usuario por padrão, cheguei a ver algumas pessoas falarem isso nos foruns, mas não é verdade.

Observação2: Esta não é a solução para todos os problemas parecidos, há diversas formas de resolver isto, essa foi uma forma que funcionou para mim, mas talvez não funcione para o seu caso, mas tenho certeza que poderá tirar proveito desta experiência.