On Thu, 2 Oct 2003, Nerox NRX wrote:

> Hola, me gustar�a saber si existe alguna funci�n para usar con el lenguaje
> C, que le permita obtener al
> programa que la llama privilegios de root, sin tener que usar SUID, por
> supuesto proporcion�ndole la contrase�a de root.
>
> Gracias

No es posible.

Existe la funci�n setuit(2). Est� pensada para ser usada desde root
para bajar privilegios no para subirlos. Ni siquiera se permite
recuperar los privilegios al proceso despu�s de bajarlos.

La forma de subir privilegios temporalmente a un usuario es usar
un ejecutable con permisos setuit y owner de root. Aun as� son un
peligro ya que algunas deficiencias muy normales en la mayor�a de
los programas se convierten en agujeros de seguridad en el caso de
estos ejecutables.

Es decir:

1) Haz un ejecutable y revisa bien el c�digo evitando cualquier
posibilidad de desbordamiento de buffer.

2) Hazlo setuit y propiedad de root.

3) Ya puedes usarlo con un execl() o un system() desde un programa
C o desde otros programas.


-- 
Un saludo
Antonio Castro

       /\     /\   Ciberdroide Inform�tica
         \\W//  << http://www.ciberdroide.com >>
        _|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . [EMAIL PROTECTED]   |
+()()()---------()()()--------------------+

Responder a