vérifier les droits d'administrateur dans le script python

15

Comment vérifier que mon script python s'exécute sous les droits d'administrateur (sudo) sous un système d'exploitation de type BSD? Besoin d'afficher un avertissement convivial pour qu'il soit exécuté sans droits d'administrateur.

grigoryvp
la source

Réponses:

37

Que dis-tu de ça? Vérifiez 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
la source
1
Je l'ai en fait raccourci :-). J'utilise également open pour l'authentification Linux, qui crée un grand UID en hachant le SID Windows.
Kyle Brandt
3

Et celui-là:

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

Ne soyez pas tenté de faire correspondre un nom d'utilisateur avec la chaîne "root".

En règle générale, vous devrez soit fournir des légendes moins efficaces pour obtenir la représentation textuelle de l'UID, soit vous compter sur des variables d'environnement qui peuvent ne pas être aussi fiables.

Dan Carley
la source