RV: [LUG.ro] Jornadas y Comandos root en PHP
Pablo Sartor
lugro@lugro.org.ar
Wed, 30 Nov 2005 05:01:38 -0300 (ART)
--0-1992844950-1133337698=:28707
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Hola Omar:
Que estás diciendo?
Si seteás el SUID bit en el archivo que querés ejecutar, éste se ejecutará como root independientemente del usuario con el que el módulo php de apache por medio de la función exec lo corra.
Ahora bien, setear el SUID bit en un servicio de sistema constituye un problema de seguridad pero la pregunta era si se podía hacer.
Yo ya lo hice y funcionó.
Salu2
#touch Universo
#chmod 0755 Universo
#./Universo
Arino Omar <ArinoO@bancobsf.com.ar> escribió:Webmin está escrito en PERL. La consulta está en como hacer algo similar en PHP, consulta que muchos programadores PHP hemos tenido y que cuando comprendes como funciona el lenguaje te das cuenta lo bien que hicieron en no ponerlo...
PHP es un lengua muy poderoso y flexible, pero en el que el programador debe ser muy cuidadoso al programarlo. Además muchos administradores de servidores web no siguen las recomendaciones de los desarrolladores de PHP en bloquear la variable PHP_GLOBAL de la configuración de PHP, que fuerza al programador a escribir código seguro, dejando flores de agujeros de seguridad en el código. Se puede hablar mucho sobre este tema, y es una de las razones por la que se critica al lenguaje, opinión que no comparto, por que trato de escribir el código tomando todas las variables como inseguras.
Omar
-----Mensaje original-----
De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre de J. Mario Oroz
Enviado el: Viernes, 25 de Noviembre de 2005 03:34 p.m.
Para: lugro@lugro.org.ar
Asunto: Re: RV: [LUG.ro] Jornadas y Comandos root en PHP
Ramiro Caire escribió:
>El vie, 25-11-2005 a las 12:09 -0300, Pablo escribió:
>
>
>>Y llamando a "/etc/init.d/servicio restart" ?????
>>
>>
>
>esto solo lo hace root, de ahi la consulta...
>
>
>
>
>
>>Saludos. Pablo.
>>
>>-----Mensaje original-----
>>De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre de
>>Mey Linux
>>Enviado el: Viernes, 25 de Noviembre de 2005 11:51 a.m.
>>Para: lugro@lugro.org.ar
>>Asunto: Re: RV: [LUG.ro] Jornadas y Comandos root en PHP
>>
>>Ouch!
>>
>>basicamente.. lo que tengop que hacer es reiniciar un servicio
>>(ctshaper) desde una PHP.. no se va a poder?
>>
>>MEY
>>
>>El vie, 25-11-2005 a las 11:20 -0300, Arino Omar escribió:
>>
>>
>>>Imposible!!!!!
>>>Una restricción que posee PHP es la de no permitir el cambio de usuario.
>>>
>>>
>>Es una regla de seguridad. Ya de por sí, si escribís un código PHP inseguro,
>>es un peligro, imaginate si le das permiso de ROOT. Lo que sí es posible es
>>hacer que cada sitio configurado en APACHE corra sus script como el usuario
>>dueño del directorio (así lo configura el webmaster), pero esto es solo para
>>tener un control mas profundo sobre los movimientos maliciosos de los
>>usuarios, cuando estas brindando servicios web a terceros y no podes
>>controlar todo el código PHP que suben al servidor.
>>
>>
>>>Omar.
>>>
>>>-----Mensaje original-----
>>>De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre
>>>
>>>
>>de Mey Linux
>>
>>
>>>Enviado el: Viernes, 25 de Noviembre de 2005 09:41 a.m.
>>>Para: lugro@lugro.org.ar
>>>Asunto: [LUG.ro] Jornadas y Comandos root en PHP
>>>
>>>
>>>Ahora el otro tema:
>>>Necesito ejecutar comandos root desde una pagina PHP (apache2, PHP4,
>>>debian sarge). Para ejecutrar los comandos utilizaria:
>>>
>>>exec("command");
>>>
>>>pero en ese caso el que los ejecuta es el usuario www-data:www-data ,no?
>>>y me parece medio arriesgado hacerlo miembro del grupo root
>>>
>>>
>>>
>>>
Talvéz la respuesta a este problema la tengas en los fuentes del Webmin,
no te parece.
Por lo que tengo entendido -y aparte lo uso- se puede reiniciar o apagar
el servidor
desde la interface web que provee.
Saludos.
Mario
_______________________________________________
Lugro mailing list
Lugro@lugro.org.ar
http://www.lugro.org.ar/mailman/listinfo/lugro
_______________________________________________
Lugro mailing list
Lugro@lugro.org.ar
http://www.lugro.org.ar/mailman/listinfo/lugro
---------------------------------
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí
--0-1992844950-1133337698=:28707
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
<div id="RTEContent">Hola Omar:<br> Que estás diciendo?<br> Si seteás el SUID bit en el archivo que querés ejecutar, éste se ejecutará como root independientemente del usuario con el que el módulo php de apache por medio de la función exec lo corra.<br> Ahora bien, setear el SUID bit en un servicio de sistema constituye un problema de seguridad pero la pregunta era si se podía hacer.<br> Yo ya lo hice y funcionó.<br> Salu2<br> <br> #touch Universo<br> #chmod 0755 Universo<br> #./Universo<br><br><b><i>Arino Omar <ArinoO@bancobsf.com.ar></i></b> escribió:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">Webmin está escrito en PERL. La consulta está en como hacer algo similar en PHP, consulta que muchos programadores PHP hemos tenido y que cuando comprendes como funciona el lenguaje te das cuenta lo bien que hicieron en no ponerlo...<br>PHP es un lengua muy poderoso y flexible, pero en el que el programador debe ser
muy cuidadoso al programarlo. Además muchos administradores de servidores web no siguen las recomendaciones de los desarrolladores de PHP en bloquear la variable PHP_GLOBAL de la configuración de PHP, que fuerza al programador a escribir código seguro, dejando flores de agujeros de seguridad en el código. Se puede hablar mucho sobre este tema, y es una de las razones por la que se critica al lenguaje, opinión que no comparto, por que trato de escribir el código tomando todas las variables como inseguras.<br><br>Omar<br><br>-----Mensaje original-----<br>De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre de J. Mario Oroz<br>Enviado el: Viernes, 25 de Noviembre de 2005 03:34 p.m.<br>Para: lugro@lugro.org.ar<br>Asunto: Re: RV: [LUG.ro] Jornadas y Comandos root en PHP<br><br>Ramiro Caire escribió:<br><br>>El vie, 25-11-2005 a las 12:09 -0300, Pablo escribió:<br>> <br>><br>>>Y llamando a "/etc/init.d/servicio restart" ?????<br>>>
<br>>><br>><br>>esto solo lo hace root, de ahi la consulta...<br>><br>><br>><br>> <br>><br>>>Saludos. Pablo.<br>>><br>>>-----Mensaje original-----<br>>>De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre de<br>>>Mey Linux<br>>>Enviado el: Viernes, 25 de Noviembre de 2005 11:51 a.m.<br>>>Para: lugro@lugro.org.ar<br>>>Asunto: Re: RV: [LUG.ro] Jornadas y Comandos root en PHP<br>>><br>>>Ouch!<br>>><br>>>basicamente.. lo que tengop que hacer es reiniciar un servicio<br>>>(ctshaper) desde una PHP.. no se va a poder?<br>>><br>>>MEY<br>>><br>>>El vie, 25-11-2005 a las 11:20 -0300, Arino Omar escribió:<br>>> <br>>><br>>>>Imposible!!!!!<br>>>>Una restricción que posee PHP es la de no permitir el cambio de usuario.<br>>>> <br>>>><br>>>Es una regla de seguridad. Ya de por sí, si
escribís un código PHP inseguro,<br>>>es un peligro, imaginate si le das permiso de ROOT. Lo que sí es posible es<br>>>hacer que cada sitio configurado en APACHE corra sus script como el usuario<br>>>dueño del directorio (así lo configura el webmaster), pero esto es solo para<br>>>tener un control mas profundo sobre los movimientos maliciosos de los<br>>>usuarios, cuando estas brindando servicios web a terceros y no podes<br>>>controlar todo el código PHP que suben al servidor. <br>>> <br>>><br>>>>Omar.<br>>>><br>>>>-----Mensaje original-----<br>>>>De: lugro-admin@lugro.org.ar [mailto:lugro-admin@lugro.org.ar] En nombre<br>>>> <br>>>><br>>>de Mey Linux<br>>> <br>>><br>>>>Enviado el: Viernes, 25 de Noviembre de 2005 09:41 a.m.<br>>>>Para: lugro@lugro.org.ar<br>>>>Asunto: [LUG.ro] Jornadas y Comandos root en
PHP<br>>>><br>>>><br>>>>Ahora el otro tema:<br>>>>Necesito ejecutar comandos root desde una pagina PHP (apache2, PHP4,<br>>>>debian sarge). Para ejecutrar los comandos utilizaria:<br>>>><br>>>>exec("command"); <br>>>><br>>>>pero en ese caso el que los ejecuta es el usuario www-data:www-data ,no?<br>>>>y me parece medio arriesgado hacerlo miembro del grupo root<br>>>><br>>>><br>>>> <br>>>><br>Talvéz la respuesta a este problema la tengas en los fuentes del Webmin, <br>no te parece.<br>Por lo que tengo entendido -y aparte lo uso- se puede reiniciar o apagar <br>el servidor<br>desde la interface web que provee.<br>Saludos.<br>Mario<br><br>_______________________________________________<br>Lugro mailing list<br>Lugro@lugro.org.ar<br>http://www.lugro.org.ar/mailman/listinfo/lugro<br><br>_______________________________________________<br>Lugro mailing
list<br>Lugro@lugro.org.ar<br>http://www.lugro.org.ar/mailman/listinfo/lugro<br></blockquote><br></div><p>
<hr size=1>
<font color="#9900FF"><b>1GB gratis</b></font>, Antivirus y Antispam<br>
<font color="#9900FF">Correo Yahoo!</font>, el mejor correo web del mundo<br>
<a href="http://login.yahoo.com/config/mail?.intl=ar">Abrí tu cuenta aquí</a>
--0-1992844950-1133337698=:28707--