run - autenticación en el script de Python para ejecutar como root
python batch file (2)
Estoy haciendo un proyecto en Linux a nivel de sistema en Python. Entonces, quiero saber que si estoy ejecutando mi código como un usuario normal y si estoy accediendo a los archivos del sistema, entonces debería tener permisos de root, entonces, ¿cómo puedo solicitar una contraseña de root y ejecutar más código como superusuario? Quiero saber eso, cómo ejecutar el script de Python como superusuario con una solicitud de contraseña para ello.
Cualquier ayuda será apreciada. Gracias de antemano..
La otra cosa que puedes hacer es que tu script invoque automáticamente sudo si no se ejecutó como root:
import os
import sys
euid = os.geteuid()
if euid != 0:
print "Script not started as root. Running sudo.."
args = [''sudo'', sys.executable] + sys.argv + [os.environ]
# the next line replaces the currently-running process with the sudo
os.execlpe(''sudo'', *args)
print ''Running. Your euid is'', euid
Salida:
Script not started as root. Running sudo..
[sudo] password for bob:
Running. Your euid is 0
Use sudo -k
para las pruebas, para borrar la marca de tiempo de sudo, de modo que la próxima vez que se ejecute el script, se requerirá la contraseña nuevamente.
import os
euid = os.geteuid()
if euid != 0:
raise EnvironmentError, "need to be root"
exit()
Esto no aparecerá en el medio del script, sino que obligaría al usuario a volver a ejecutarlo con sudo o como root