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.

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

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.