periksa hak admin di dalam skrip python

15

Bagaimana cara memeriksa bahwa skrip python saya berjalan di bawah hak Administrator (sudo) di bawah OS mirip BSD? Perlu menampilkan peringatan yang ramah pengguna agar dieksekusi tanpa hak admin.

grigoryvp
sumber

Jawaban:

37

Bagaimana dengan ini? Periksa apakah 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
sumber
1
Saya sebenarnya menyingkatnya :-). Saya juga menggunakan open untuk otentikasi Linux, yang menciptakan UID besar dengan hashing SID Windows.
Kyle Brandt
3

Bagaimana dengan yang itu:

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

Jangan tergoda untuk mencocokkan nama pengguna dengan string "root".

Umumnya Anda harus memberikan info yang kurang efisien untuk mendapatkan representasi tekstual dari UID atau Anda akan bergantung pada variabel lingkungan yang mungkin tidak begitu dapat dipercaya.

Dan Carley
sumber