root en python

Pepe Aracil pepe en diselpro.com
Dom Abr 27 21:37:54 CEST 2008


Hola

El comando "su" no cambia los permisos del proceso que lo llama, si no
que lanza un nuevo proceso bash u otro con permisos de root. Haz la prueba
ejecutando desde bash el comando "su" y después haz un "ps -A", verás
como el "su" sigue estando vivo y ha lanzado un bash con permisos de root.

Que yo sepa no existe ninguna forma de que un proceso escale privilegios.
Lo que si puede hacer es saltar de root a otro uid menos privilegiado
con os.setuid o os.seteuid. Si te fijas, todos los comandos de la shell que
"escalan" privilegios tienen el bit suid activado.

Lo que puedes hacer es configurar el sudo para poder lanzar ese comando sin
que pregunte la password.

Saludos.


Sergio escribió:
> Hola a todos estoy escribiendo un pequeño script en pyhton y en cierto 
> momento necesito logearme como root.
>
> El caso es que no consigo resolver el problema ,hasta ahora tengo esto 
> hecho:
>           def compr():
>                uid = os.getuid ()
>                while uid != 0:
>                            print aviso
>                            os.execv('/bin/su',arg )
>                print uid
>
> la variable arg es una tupla como sigue:
>
> arg   = ('su','-c','echo \"et.x86 0 0 disable\" > 
> /proc/asound/card0/pcm0p/oss && echo \"et.x86 0 0 direct\" > 
> /proc/asound/card0/pcm0p/oss')
>
> el caso es que consigo que me pida el pass pero una vez que lo 
> introducco se cierra y los comandos que se suponen se debian de 
> ejecutar no se
> ejecutan, ni siquiera se muestra el print con el uid :(
>
> Soy novato en python y esta es una forma de practicar con el  y 
> aprender algo mas.
>
> Saludos.
>           _______________________________________________
> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes

_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es