Foros del Web » Administración de Sistemas » Unix / Linux »

Apagar servidor con php system();

Estas en el tema de Apagar servidor con php system(); en el foro de Unix / Linux en Foros del Web. Hola a todos, le cuento... Tengo un "sitio" en un server interno que muestra la opcion de apagar el servidor a cierto usuario en cierto ...
  #1 (permalink)  
Antiguo 06/03/2009, 09:26
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Pregunta Apagar servidor con php system();

Hola a todos, le cuento...

Tengo un "sitio" en un server interno que muestra la opcion de apagar el servidor a cierto usuario en cierto momento.

para esto uso lo siguiente:

Código PHP:
system("sudo halt"$return);        
    echo 
$return
esto me retorna valor 1

ahora, el problema radica en que en el servidor de pruebas si funciona, pero no lo hace en el servidor de producción.

Servidor de produccion:
Código:
Debian 5.0 Lenny 
Linux zeus 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux
Servidor de pruebas:
Código:
Ubuntu 8.04 hardy
Linux info 2.6.24-23-generic #1 SMP Mon Jan 26 01:04:16 UTC 2009 x86_64 GNU/Linux
Ambos servidores usan apache2 y el usuario en ambos casos es www-data (los archivos php tambien le pertenecen a www-data), además en ambos servidores www-data esta dentro del archivo /etc/sudoers

Mis preguntas son: ¿Que puede estar pasando? ¿porque no sirve?


Gracias por su ayuda
__________________
Comparte tu conocimiento: Repositorio de Funciones

Última edición por xumarodok; 06/03/2009 a las 09:28 Razón: Pequeña corrección...
  #2 (permalink)  
Antiguo 06/03/2009, 10:22
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Apagar servidor con php system();

Lo mas probable es que tu servidor de produccion, o bien no tenga el sudo configurado para eso, o el PHP tenga restricciones. Fijate en la documentación de system() en la web de PHP que lo explica.
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 08/03/2009, 11:55
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

Bueno, resolvi el problema asi:

www-data ALL=NOPASSWD: ALL

Espero les sirva
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #4 (permalink)  
Antiguo 08/03/2009, 12:26
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 6 meses
Puntos: 35
Respuesta: Apagar servidor con php system();

Vaya, espero que ese servidor no sea crítico para ti, porque si le das ese tipo de permisos al usuario www-data estás comprometiendo seriamente la seguridad de tu sistema.
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #5 (permalink)  
Antiguo 08/03/2009, 12:38
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

en eso tienes mucha razon, pero el servidor no es accesible desde el exterior y tomo otras medidas de seguridad

Gracias! :D
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #6 (permalink)  
Antiguo 08/03/2009, 20:37
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Apagar servidor con php system();

Igual mas alla de lo que digas me parece una forma muy mala de hacer lo que estas necesitando...

Saludos
__________________
¡Volviendo a la programación!
  #7 (permalink)  
Antiguo 08/03/2009, 21:09
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

Bueno, si tienes otra solución estoy dispuesto a escucharla
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #8 (permalink)  
Antiguo 09/03/2009, 01:06
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Apagar servidor con php system();

Bueno, cuentame primero porque la necesidad de apagar tu servidor...
__________________
¡Volviendo a la programación!
  #9 (permalink)  
Antiguo 09/03/2009, 03:42
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 5 meses
Puntos: 76
Respuesta: Apagar servidor con php system();

¿Y qué tal por SSH?
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #10 (permalink)  
Antiguo 09/03/2009, 09:26
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

Bueno, la razón principal es que el servidor no se usa para nada cuando no hay usuarios... es decir, de noche y fines de semana.

Hay directrices de ahorro de energía... entonces hay que apagar los equipos... yo no estoy a la hora del cierre y es muy tedioso pasar por varios servidores via ssh hasta llegar a este solo para apagarlo.... desde mi casa en la noche...

Ahora, hay otra realidad, Los usuarios no saben apagar un servidor debian sin monidor, sin mouse y sin teclado.... y desde windows donde tendrían que usar software tipo putty...

además, darle acceso a cualquier persona para entrar.... mmm... no me gusta la idea... por ese lado prefiero darle el permiso a www-data. (se tambien que asi riesgo es algo... pero necesitaba una solucion con urgencia... ahora podemos cambiar la solucion puesto que tiempo ya tenemos....)

Defero.tk, suena interesante la propuesta de hacerlo via ssh pero ¿te refieresa hacerlo usando php?
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #11 (permalink)  
Antiguo 09/03/2009, 09:29
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Apagar servidor con php system();

digo yo... y una tarea de cron? si la empresa cierra a las 7 de la tarde, decile al servidor que a las 9 de la noche se apague todos los dias?
__________________
30% Nerd 70% Polyster
  #12 (permalink)  
Antiguo 09/03/2009, 09:34
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

Hey!

porque no se me habia ocurrido antes????

Gracias!
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #13 (permalink)  
Antiguo 09/03/2009, 09:37
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Apagar servidor con php system();

podes hacer algo mas avanzado y menos violento/prehistorico si en ves de echar un cron de apagar, a las 9 corres un script que chequee q no tiene a nadie conectado x ssh ni web/puerto q uses y apague... asi no te llevas sorpresas el dia q alguien se quede hasta tarde trabajando...
__________________
30% Nerd 70% Polyster
  #14 (permalink)  
Antiguo 09/03/2009, 09:39
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

bueno, en eso tienes razon...

creo que podría usar $who para ver si hay alguien conectado por ssh... pero para saber si hay alguien por web?
__________________
Comparte tu conocimiento: Repositorio de Funciones
  #15 (permalink)  
Antiguo 09/03/2009, 11:58
Avatar de Tombar  
Fecha de Ingreso: junio-2008
Ubicación: /home/tombar
Mensajes: 198
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Apagar servidor con php system();

netstat, tcpdump o revisar los access logs? lo q mas rabia te de^^
__________________
30% Nerd 70% Polyster
  #16 (permalink)  
Antiguo 09/03/2009, 12:00
 
Fecha de Ingreso: diciembre-2004
Ubicación: Costa Rica
Mensajes: 152
Antigüedad: 20 años
Puntos: 2
Respuesta: Apagar servidor con php system();

jeje! ok ok.... voy a investigar sobre estos, espero lograr algo más seguro:

netstat, tcpdump, access logs

gracias a todos...
__________________
Comparte tu conocimiento: Repositorio de Funciones
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 21:16.