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] | +()()()---------()()()--------------------+