Foros del Web » Programando para Internet » PHP »

Problema para ejecutar comando con sudo remotamente

Estas en el tema de Problema para ejecutar comando con sudo remotamente en el foro de PHP en Foros del Web. Hola a todos. Estoy tratando de ejecutar remotamente un comando en un servidor Unix a través de una interfaz web. Adjunto el código en donde ...
  #1 (permalink)  
Antiguo 25/06/2012, 14:01
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Problema para ejecutar comando con sudo remotamente

Hola a todos.

Estoy tratando de ejecutar remotamente un comando en un servidor Unix a través de una interfaz web.
Adjunto el código en donde realizo la instrucción en PHP:
$connection = ssh2_connect($IP, 22);
ssh2_auth_password($connection, 'prueba', 'password);
$stream = ssh2_exec($connection,"sudo /tmp/prueba.sh");

Sin embargo, no ejecuta esa instrucción.
El propietario de ese grupo es root y no puedo cambiarlo porque no debe quedar accesible a ningún usuario:
# ls -l /tmp/prueba.sh
-rwx------ 1 root sys 28 Jun 25 13:30 /tmp/prueba.sh
#

Modifiqué el archivo sudoers para que el usuario 'prueba' pudiera ejecutar sin problemas ese script:
# grep prueba /etc/sudoers
prueba ALL=NOPASSWD:/tmp/prueba.sh

Como pueden notar también desactivé que pida la contraseña cuando ejecute ese script.
Si lo hago a través de la consola del servidor lo realiza sin problemas.
Adjunto el ejemplo:
$ whoami
prueba
$ /tmp/prueba.sh
sh: /tmp/prueba.sh: Execute permission denied.
$ sudo /tmp/prueba.sh
Last successful login: Mon Jun 25 14:31:13 CDT#Mexico 2012 pruebas.falcon.com
Last authentication failure: Fri May 18 13:58:28 CDT#Mexico 2012 ::ffff:790.84.1.7
Damien

En este caso el script solamente imprime una cadena de texto.

Sin embargo, el punto principal es poder ejecutar comandos de forma remota que solamente utiliza root (para descartar la idea de cambiar los permisos de ejecución o propietario en los archivos)
Tampoco puedo poner el usuario de root en mi código por motivos de seguridad.
El problema principal se encuentra en la siguiente instrucción:

$stream = ssh2_exec($connection,"sudo /tmp/prueba.sh");

Al parecer, por algún motivo no puedo ejecutar algún comando utilizando el 'sudo', ya que si realizo un listado o cualquier comando que tenga acceso lo realiza sin ningún problema.
Y si le quito el 'sudo' tampoco lo hace porque no posee los permisos necesarios.

Podrían ayudarme por favor?
He buscado y no veo en dónde se encuentra el posible error.
O desconozco si hasta el momento no es posible realizar una instrucción remota con 'sudo'

Apache version :Apache/2.2.4 (Win32)
PHP version :5.2.4
Tengo activada la extensión php_ssh2

Gracias de antemano.

Saludos.

DASM

Etiquetas: apache, ssh2_exec, sudo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:41.