Rodar script em Apache

1. Rodar script em Apache

Vinicius
ViniMagrelo

(usa Ubuntu)

Enviado em 09/09/2011 - 14:02h

Olá,
Sou iniciante em linux e preciso rodar um script .sh em uma página web.
Tenho apache2 instalado e quero puxar esse script diretamente pelo html.
Isso é possível?
Abraço.


  


2. Re: Rodar script em Apache

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 09/09/2011 - 15:06h

<?php
exec('/diretorio/script.sh');
?>

lembrando que precisa instalar php, habilitar no apache e o usuário www-data ter permissão para executar o script.sh


3. Re: Rodar script em Apache

Vinicius
ViniMagrelo

(usa Ubuntu)

Enviado em 09/09/2011 - 15:07h

Como habilito a permissão para esse useR?


4. Re: Rodar script em Apache

Eriton Almeida
eritonalmeida

(usa Debian)

Enviado em 09/09/2011 - 15:10h

chmod o+x script.sh


5. Re: Rodar script em Apache

Vinicius
ViniMagrelo

(usa Ubuntu)

Enviado em 09/09/2011 - 15:13h

Meu script é o seguinte:


##!/bin/bash
echo -n "Digite o usuario que deve ser modificado"
read user
echo -n "Digite a nova senha"
read passwd1
printf "$user:$passwd1" | chpasswd
printf "${passwd1}\n${passwd1}\n" | smbpasswd -s -a $user
echo "Alterado com sucesso!"


Como eu faço pra atribuir os parametros que serão pedidos posteriormente?

Meu arquio php


<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('/etc/samba/smbadduser.sh');
?>



6. Re: Rodar script em Apache

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 10/09/2011 - 02:24h

Use shell script + CGI!

Da uma olhada aqui: http://thobias.org/doc/cgi_shell.html






7. Re: Rodar script em Apache

Vinicius
ViniMagrelo

(usa Ubuntu)

Enviado em 12/09/2011 - 14:09h

Cara, eu fiz o seguinte. Criei um script em Ruby:

#!/usr/bin/ruby
require 'cgi'
cgi = CGI.new
ret = system("/var/www/intranet/cgi-bin/mudasenha.sh", cgi['User'], cgi['PassWord'])
puts cgi.header
if ret == true
puts "<html><body>Senha atualizada com sucesso.</body></html>"
else
puts "<html><body>Erro tentando atualizar senha.</body></html>"
end

e um bash:

#!/bin/bash
user=$1
passwd1=$2
if [ -z $user -o -z $passwd1 ]; then exit 1; fi
printf "$user:$passwd1" | chpasswd
if [ $? -ne 0 ]; then exit 1; fi
printf "${passwd1}\n${passwd1}\n" | smbpasswd -s -a $user
if [ $? -ne 0 ]; then exit 1; fi

Quando eu tento mudar a senha ele me dá o seguinte erro no log:
/var/www/intranet/cgi-bin/mudasenha.sh: line 5: chpasswd: command not found, referer:. . .


Quando eu mudo a senha na unha ele dá certo, só usando o script bash, mas pela web não.
Alguma ideia?
Agraço desde já.
Abraço.




8. Re: Rodar script em Apache

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 13/09/2011 - 13:39h

Testa esse exemplo aqui: http://pastebin.com/HraBe7bc


9. Re: Rodar script em Apache

Vinicius
ViniMagrelo

(usa Ubuntu)

Enviado em 13/09/2011 - 13:47h

Eu resolvi meu problema.
O problema era o seguinte, o apache executava o script mas nao conseguia
fazer a alteração por comando porque ele utilizava um user "www-data", então
criei o user no server e dei permissão pra ele executar somente esse comando.
Aí funcionou.
Mesmo assim valeu pela ajuda.
Abraço.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts