web-dev-qa-db-fra.com

Vérifiez les droits de l'administrateur à l'intérieur python Script

Comment vérifier que mon python script est en cours d'exécution sous DROITS DE L'ADMINISTRATEUR (SUDO) Sous OS BSD-Shald? Besoin d'afficher un avertissement convivial afin qu'il soit exécuté sans droits d'administration.

15
grigoryvp

Que dis-tu de ça? Vérifier 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
37
Kyle Brandt

Que diriez-vous de celui-ci:

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

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

En règle générale, vous devrez donc fournir des callouts moins efficaces pour obtenir la représentation textuelle de l'UID ou vous appuierez sur des variables d'environnement qui peuvent ne pas être aussi dignes de confiance.

2
Dan Carley