Ejecutar un comando de bash como root en python

aNgel rEsendiz g. sonajadiabolica en gmail.com
Vie Dic 14 20:26:08 CET 2007


> Necesito correr un comando de bash en python, pero el problema es que es un
> "fdisk -l" y solo se lo puede correr como root por lo que tengo entendido,
> por lo cual quisiera saber si existe alguna forma de no tener que escribirle
> la palabra "sudo" adelante.
>
> Ejem.              disco = os.popen("sudo fdisk -l").readlines()
>
>
> El problema que tengo es que si no le agrego el sudo, simplemente no hace
> nada.
> Revise los permisos del archivo pero no cambia en nada.

¿El programa lo vas a ejecutar solamente en cierta(s) computadora(s)?
En principio no puedes estar seguro de contar con "sudo" en cualquier
computadora, ya que no es algo estándar (no he probado muchas
distribuciones últimamente, pero creo que solo Ubuntu lo incluye de
manera predeterminada). En su lugar, puedes utilizar su, algo así:
su -c COMANDO
aunque no lo he probado, tienes que leer el man.

Y por otra parte, ejecutar un programa de root, sin ser root, sería
encontrar una vulnerabilidad en dicho programa y/o sistema, además no
se trata de un programa que funcione de manera aislada, también tienes
que tener ciertos permisos sobre las particiones con las que quieres
trabajar con fdisk, entonces, a menos que sea una máquina totalmente
aislada, no sería recomendable. Creo que lo mejor es utilizar sudo e
introducir un password siempre que se va a ejecutar un programa de ese
tipo.

Saludos.

-- 
aNgel rEsendiz.!
_______________________________________________
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