Pular para o conteúdo

Rodar script em Apache

Responder tópico
  • Denunciar
  • Indicar

1. Rodar script em Apache

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.

Responder tópico

2. Re: Rodar script em Apache

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

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

Como habilito a permissão para esse useR?

4. Re: Rodar script em Apache

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

chmod o+x script.sh

5. Re: Rodar script em Apache

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');
?>

7. Re: Rodar script em Apache

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.


9. Re: Rodar script em Apache

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.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder