- PHP + exec()
+ Responder ao Tópico
-
PHP + exec()
Estou utilizando uma interface web para gerenciar um programa que roda no meu Ubuntu Server.
Ao acessar a interface tenho que colocar um usuário e uma senha, definidos no momento da instalação do programa, para ter acesso aos recursos.
Estou "adicionando" algumas páginas de configuração à essa interface utilizando PHP.
Preciso criar um arquivo dentro de uma pasta do sistema, mas ao executar o comando exec(touch caminho\nome_do_arquivo) não acontece nada.
Acredito que seja problema de permissão de acesso à pasta do sistema.
Como posso fazer esse comando rodar como um usuário específico?? Existe alguma linha de código PHP que eu posso definir o usuário e a senha que devem ser utilizados??
-
Re: PHP + exec()
<?php
mkdir('/test1/test2', 0777, true);
chmod('/test1', 0777);
chmod('/test1/test2', 0777);
?>
-
Re: PHP + exec()
tenta exec(sudo touch caminho\nome_do_arquivo)
-
Re: PHP + exec()
Boa noite,
Tentei de ambas as formas sugeridas mas não criou a pasta nem o arquivo.
Existe alguma forma de executar um comando como root através do PHP??
Acredito que não está funcionando pois a pasta onde quero criar o arquivo precisa de permissão para acesso.
-
Re: PHP + exec()
Estive realizando alguns testes e os resultados foram os seguintes:
Editei o arquivo 'VISUDO' e adicionei a seguinte linha 'root ALL = NOPASSWD: /caminho do script' e também 'ALL ALL = NOPASSWD: /caminho do script'.
O script contém o seguinte conteúdo:
sudo mkdir /usr/local/nagios/share/config2/teste;
As permissões do arquivo script.sc:
-rwxr-xr-x 1 root root 63 2010-12-11 09:38 script.sc
Ao colocar a função get_current_user( ) no código PHP ela retornou 'root' mas mesmo com as tentativas acima ainda não consigo criar o diretório.
O que estou fazendo de errado?
-
Re: PHP + exec()
Entre no terminal e digite "gksudo nautilus (pasta aonde ficam os arquivos)" volte um nível a cima, cliquei com o botão direito na pasta e e altere a permissão dos usuários.
Veja se resolve.