exec() [RESOLVIDO]

1. exec() [RESOLVIDO]

Thiago
thiagopastre

(usa Ubuntu)

Enviado em 09/12/2010 - 21:34h

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. MELHOR RESPOSTA

ranzes tamar
ranzes

(usa Slackware)

Enviado em 14/12/2010 - 09:21h

Bom dia.

Tenho vários digamos "minis sites" para o gerenciamento de vários recursos dentro dos Linux.
Isso porque várias pessoas precisam liberar acessos ou outros recursos, então a melhor forma se já não tiver um opensource é fazer algo para solução de seu problema.

Vou passar a forma que resolvi embora isso por questões de segurança não deva estar aberto para fora.

Segue ai um exemplo:

Primeiro verifique qual o usuário que o seu servidor apache está usando:

exemplo: www-data , apache , httpd , etc.

Isso poderá verificar em seu httpd.conf

achando o usuário, execute:
visudo

insira a linha:

apache ALL=(ALL) NOPASSWD: ALL

no meu caso usuário apache , se por questões de segurança se não quiser liberar tudo poderá fazer para um comando especifico.

depois basta chamar em seu php com o comando system.

neste exemplo abaixo mostra bem como fiz um exemplo:


<html>
<head>
<title> Aplicando alterações no servidor :.</title>
<body bgcolor="#FFFFFF">
<font color="000000" size="2" face="Tahoma"><b>Aguarde, reiniciando os Servicos...</b></font>
<?php

system('sudo /sbin/squid -k reconfigure');
system('sudo /etc/firewall/rc.firewall');

echo '<meta http-equiv="refresh" content="3;url=index.php">';
echo '</head>';
?>

</body>
</html>



Não sei se era exatamente isso que estava procurando.

Enfim.


é isso aí.


3. exec

wanderley silva
wandecolee

(usa Fedora)

Enviado em 14/12/2010 - 08:48h

Eu acho que atraves de Pipes você consegue passar argumentos para algum script do bash antes de executar o script em php(para mudar de usuario), depois pode se voltar ao script em php. Acredito se for querer que o proprio exec do php faça isso, acho que teria que mudar o código fonte para que tivesse a funcionalidade do comando que faz isto.



4. Re: exec() [RESOLVIDO]

ranzes tamar
ranzes

(usa Slackware)

Enviado em 14/12/2010 - 09:31h

Só mais uma coisa:

O php por padrão usa o mesmo usuário do servidor httpd no seu caso acredito que esteja usando o apache.
logo, tudo será referenciado à este usuário para acesso de leitura ou escrita e execução.

Por isso o uso do sudo.


Att,



5. Re: exec() [RESOLVIDO]

Thiago
thiagopastre

(usa Ubuntu)

Enviado em 14/12/2010 - 17:37h

A edição do arquivo sudoers funcionou perfeitamente.. limitei a permissão apenas a pasta onde estarão os scripts que quero manipular.
Muito obrigado pela ajuda!!!

Ps: Aproveitando o tópico... por acaso vc não tem um script legal para validação de formulários em php???


6. Re: exec() [RESOLVIDO]

ranzes tamar
ranzes

(usa Slackware)

Enviado em 15/12/2010 - 07:42h

acho que isso irá lhe ajudar:

http://imasters.com.br/artigo/2114


Att,







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts