Pregunta compruebe los derechos de administrador dentro de la secuencia de comandos de Python


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


13
2018-06-01 13:03


origen




Respuestas:


¿Qué tal esto? Comprobar 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

32
2018-06-01 13:09



En realidad lo acorté :-). También utilizo open para la autenticación de Linux, que crea un UID grande mediante el hashing del SID de Windows. - Kyle Brandt♦


¿Qué tal ese?

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

3
2018-06-01 13:07





No tengas la tentación de hacer coincidir un nombre de usuario con la cadena "raíz".

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


1
2018-06-01 13:47