Peligros de PHP (era Re: Ejecucion de comando shell)
mramirez en iciuchile.cl
mramirez en iciuchile.cl
Vie Jun 11 17:24:12 CLT 2004
Absolutamente nothing.
Creo que es drama del ssh. El log es:
Could not create directory '/var/www/.ssh'.
==> /var/log/httpd/access_log <==
166.75.126.123 - - [11/Jun/2004:13:00:53 -0400] "POST /maramire/PHP/script2.php
HTTP/1.1" 200 226 "http://166.75.126.189/maramire/" "Mozilla/4.0 (compatible;
MSIE 6.0; Windows NT 4.0; .NET CLR 1.1.4322)"
==> /var/log/httpd/error_log <==
Host key verification failed.
Hice el proceso de ssh key-gen .... + id_dsa.pub ... entre los 2 equipos, como
un usuario que se conecta a la cuenta de un usuario en el equipo remoto. Por
coincidencia ambos usuarios soy yo. Luego desde la maquina 1 me conectaba sin
password a la otra maquina e incluso podia poner:
ssh user en IP ./comando parametros
En forma remota. Todo facil y bonito. El sgte paso fue hacer eso mismo desde una
pagina web mediante PHP. Ahi se metio el usuario apache (parece) y empezo a
"guatiarse" todo.
Creo que todo se debe a que tengo un enredo con los usuarios y permisos. Quizas
si hago el seteo de la conexion transparente ssh como usuario apache
conectandose a equipo remoto (a una cuenta) y este devolviendole la salida al
servidor web mediante ssh, se deberia arreglar todo.
Alguien me podria explicar esto de los usuarios y como funciona o donde puedo
leerlo?
Agradezco su ayudas anteriores y nuevas.
Salu2
Mensaje citado por "Ricardo Mun~oz A." <rmunoz en pjud.cl>:
> El vie, 11-06-2004 a las 16:16, mramirez en iciuchile.cl escribió:
>
> [...]
>
> > Que extraño, hice un script basico con tu codigo y funciona OK. Lo
> reemplace
> > con mi comando y nada (exactamente lo mismo).
>
> no te muestra nada?? no te ejecuta nada??
>
> > La diferencia es que mi comando bash necesita 3 parametros como datos de
> > entrada, por lo tanto hago:
> >
> > <?php
> > $param1 = "valor1";
> > $param2 = "valor2";
> > $param3 = "valor3";
> > $funcion = "/home/user/public_html/Dir/comando.sh $param1 $param2
> $param3";
> > exec ($funcion,$res);
> >
> > for ($i=0; $i<count($res); $i++)
> > echo $res[$i]."<br>\n";
> > ?>
> >
> > Por otro lado, el comando.sh hace una conexion a un equipo remoto para
> ejecutar
> > otro comando:
> >
> > ssh user en IP ./comando_remoto $param1 $param2 $param3
>
> quizas ahi esta problema... dudo que el usuario apache pueda usar
> el comando ssh... quizas se podria modificar la configuracion del SSH??
>
> lo que podrias hacer en vez de eso, es establecer una comunicacion
> directa desde PHP (usando funciones PHP) para comunicarte hacia el
> puerto 22 (SSH) del servidor remoto (remoto para el servidor web):
>
> http://cl.php.net/manual/es/function.fsockopen.php
>
> eso nunca no le hecho, pero si cosas similares como por ejemplo
> desde PHP leer correo (de un servidor remoto) abriendo el puerto
> 110 (POP) mediante las funciones imap*() de PHP.
>
> quizas primero podrias buscar algo ya hecho... por ejemplo en:
>
> http://php.resourceindex.com/
>
> suerte!
>
> --
> Ricardo Mun~oz A.
> Usuario Linux #182825 (counter.li.org)
>
Más información sobre la lista de distribución PHP