+ Responder ao Tópico



  1. #1

    Padrão 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??

  2. #2

    Padrão Re: PHP + exec()

    <?php
    mkdir('/test1/test2', 0777, true);
    chmod('/test1', 0777);
    chmod('/test1/test2', 0777);
    ?>

  3. #3

    Padrão Re: PHP + exec()

    tenta exec(sudo touch caminho\nome_do_arquivo)

  4. #4

    Padrão 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.

  5. #5

    Padrão 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?

  6. #6

    Post 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.