verifique los derechos de administrador dentro del script de Python

15

¿Cómo verificar que mi script de Python se ejecuta bajo los derechos de administrador (sudo) en un sistema operativo tipo BSD? Es necesario mostrar una advertencia fácil de usar para que se ejecute sin derechos de administrador.

grigoryvp
fuente

Respuestas:

37

¿Qué tal esto? Verificar si uid == 0:

[kbrandt@kbrandt-admin: ~] python -c 'import os; print os.getuid()'
196677

[kbrandt@kbrandt-admin: ~] sudo python -c 'import os; print os.getuid()'
0
Kyle Brandt
fuente
1
En realidad lo acorté :-). También uso open para la autenticación de Linux, que crea un gran UID al aplicar hash al SID de Windows.
Kyle Brandt
3

¿Qué tal ese:

import os
username=os.system("whoami")
if username is not "root":
    print "You aren't root"
else:
    print "Hello, "+username
Severe_admin
fuente
2

No caigas en la tentación de hacer coincidir un nombre de usuario con la cadena "root".

Por lo general, tendrá que proporcionar llamadas menos eficientes para obtener la representación textual del UID o dependerá de variables de entorno que pueden no ser tan confiables.

Dan Carley
fuente