PHP ejecutando programas de la shell

Hector Gatica hector.gatica en opensynapse.cl
Mie Jun 27 18:39:21 CLT 2012


On Wed, 27 Jun 2012 18:34:06 -0400, Waldo Morales
<waldo.morales en gmail.com> wrote:
> On 06/27/2012 06:23 PM, Hector Gatica wrote:
>> Si tienes safe_mode apagado , haz intentado con exec ?
>>
>> Saludos.
>>
>> On Wed, 27 Jun 2012 18:02:47 -0400, Marco González Luengo
>> <noquierouser en gmail.com> wrote:
>>> El 27 de junio de 2012 17:53, jmvidal.cl en gmail.com
>>> <jmvidal.cl en gmail.com>escribió:
>>>
>>>> Y porque no puedes tirar un cron? No me quedo claro
>>>>
>>>
>>> No puedo tirar un cron porque el encendido de las máquinas es bajo demanda,
>>> o sea, cuando se quiere que se enciendan. Lo mismo con el comando beep que
>>> trato de correr.
>>>
>>> Como aporte de antecedentes, me puse a probar si acaso podía correr
>>> comandos como `ls -la` o `dmesg` con el script que puse al iniciar el hilo;
>>> y éstos corren sin problema. Pero tratar de correr `beep` o `ether-wake`
>>> (con o sin parámetros) no me arroja resultados.
>>>
>>> También como mencioné anteriormente, tengo php con safe_mode apagado y
>>> SELinux desactivado, así que no veo qué podría estar impidiendo correr
>>> ciertos comandos mediante PHP.
>>
> Hola,
> 
>  Tu problema aparentemente son los permisos de ejecucion, prueba con
> exec como dice el amigo antes y tambien dandole mas permisos al usuario
> que ejecuta o al programa mismo ( prueba con whoami , luego "su <usuario
> de whoami>" e intenta correr estos comandos desde una consola ) .
> 
> 
> 
> Saludos.
> 
> PD : nunca es buena idea darle poderes a php para prender o apagar
> computadoras expuesto a internet, si hay otra solucion posible claro.

Lo otro , y pensando en que si corre eh php-cli , pero no sobre web.
Efectivamente puede ser un tema de permisos.
PHP corre sobre www-data sobre apache por ejemplo. Probablemente no
tenga acceso a ese binario.

Por ultimo , copia el ejecutable del beep a un home , dale 755 y
verifica si corre ( ahí sales de dudas ).

Saludos.



Más información sobre la lista de distribución Linux