python betiği içindeki yönetici haklarını kontrol et


15

Python betiğimin BSD benzeri işletim sistemi altında Yönetici hakları (sudo) altında çalışıp çalışmadığını nasıl kontrol edebilirim? Yönetici hakları olmadan yürütülmesi için kullanıcı dostu uyarının görüntülenmesi gerekir.

Yanıtlar:


37

Buna ne dersin? Şunları kontrol edin 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
Aslında kısalttım :-). Ben de Windows SID hash ile büyük bir UID oluşturan Linux kimlik doğrulaması için açık kullanın.
Kyle Brandt

3

Buna ne dersin:

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

2

Bir kullanıcı adını "root" dizesiyle eşleştirmek için cazip olmayın.

Genel olarak, UID'nin metinsel temsilini elde etmek için daha az verimli ek bilgiler sağlamanız gerekecek veya bu kadar güvenilir olmayabilecek ortam değişkenlerine güveneceksiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.