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.

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

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

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.