Em 30 de outubro de 2010 00:52, PaulinhoLinux <[email protected]> escreveu:
> Salve galera blzzz
>
> Estou com um grande problema ...
>
> Possuo uma página em PHP e no final dela um botão aplicar, que deverá ter como
> função o reload do serviço squid. Só que o arquivo tem como dono o usuário do
> apache (www-data) e não o root. Tenho utilizado no código fonte comandos em 
> php
> como o exec, shell_exec ,mas os comandos não estão funcionando.
>
> Alguém tem alguma idéia de como posso fazer esse reload (ou dependendo do caso
> restart do serviço) através da linguagem PHP ?
>
> Obrigado antecipadamente ....
>
> Até mais
>
> PaulinhoLinux
>

A pior maneira de se fazer isso seria usando um shell script com SETUID [1,2]

A maneira "menos pior é usando o sudo para escalonar privilégios de
root ao usuário do Apache de forma que ele execute apenas um somando
[3]

- Existem outras maneiras como usar um cgi;
- Usar um arquivo de registro como um flag para que um outro script
rodando via cron pudesse ler este arquivo recebendo então uma
autorização para executar sua tarefa como root;
- O mesmo exemplo anterior, mas substituindo o cron por um daemon;
- Entre outras.

Se você quer algo rápido e prático em um ambiente que a segurança não
algo muito crítico use o setuid, se ovocê quer um pouco mais de
segurança use o sudo; qualquer outra possibilidade procure no Google
pelas outras sugestões ;)

[]

[1] http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html
[2] http://www.tuxation.com/setuid-on-shell-scripts.html
[3] http://aplawrence.com/SCOFAQ/FAQ_scotec1asroot.html

-- 
Welington Rodrigues Braga
--------------
Web: http://www.welrbraga.eti.br
MSN: welrbraga[*]msn·com
Gtalk: welrbraga[*]gmail·com
Yahoo / Skype:  welrbraga
PGP Key: 0x6C7654EB
Linux User #253605

"Em tudo somos atribulados, porém não angustiados; perplexos, porém
não desanimados; perseguidos, porém não desamparados; abatidos, porém
não destruídos;" - 2Co 4:8,9

-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a