sprawdź uprawnienia administratora w skrypcie python


15

Jak sprawdzić, czy mój skrypt Pythona działa w ramach uprawnień administratora (sudo) w systemie operacyjnym podobnym do BSD? Konieczne jest wyświetlenie przyjaznego ostrzeżenia, aby zostało wykonane bez uprawnień administratora.

Odpowiedzi:


37

Co powiesz na to? Sprawdź, czy 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
Właściwie to skróciłem :-). Używam również otwartego do uwierzytelniania systemu Linux, który tworzy duży identyfikator UID poprzez mieszanie identyfikatora SID systemu Windows.
Kyle Brandt

3

Co powiesz na to:

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

2

Nie ulegaj pokusie, aby dopasować nazwę użytkownika do ciągu „root”.

Zasadniczo albo będziesz musiał dostarczyć mniej wydajne objaśnienia, aby uzyskać tekstową reprezentację UID, albo będziesz polegać na zmiennych środowiskowych, które mogą nie być tak wiarygodne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.