2010-11-06 12 views
6

Python programımın bir kısmı yönetici erişimine ihtiyaç duyar. gksudo komutuna benzer bir GUI popup kullanarak kök ayrıcalıklarını nasıl edinebilirim? sadece belirli bir işlev için ayrıcalıklara sahip tercih olacaktır böyleceGrafik sudo ile python'da root ayrıcalıkları nasıl kazanılır?

Ben sadece programın küçük bir bölümü için root yetkileri gerekiyor.

gksudo(my_func, 'description of why password is needed') 

cevap

3

prizler kullanın veya bir dosya için izlemek ayrıcalıkları ayrı bir dosya ve sonra böyle dosyayı çalıştırın:

>>> import subprocess 
>>> subprocess.call(['gksudo','python that_file.py']) 

şifre istemi getirmek ve root olarak that_file.py çalışacaktır Ayrıca bir program root olarak çalıştırmak gerektirir olabilir

başla ve sadece programa sahip ol Eğer programınız normal olarak bir menüden başlatılmışsa, en iyi fikir değil, başlangıçtaki komut satırında "gksudo python your_program.py" kullanıcı tipi.

5

gksudo yönetici ayrıcalıklarıyla çalışan programları başlatmak için kullanılabilir: Ben umuyorum

gibi bir şey yapabilmek için. Uygulamanızın root olarak çalışması gereken kısmı, komut satırından ayrı bir işlem olarak çalıştırılabilmelidir.

Sen programın parçası yapmak gerekir

o kök gerektirir: ikisi arasında iletişimi çeşit gerekiyorsa, Burada iki seçeneğiniz var vs.

+1

Ancak, yuva kullanıyorsanız, bir saldırganın gksudoed programa bağlanamadığından emin olun. IMHO, DBUS veya benzeri (oturum spesifik) kullanmak daha iyi olurdu. – thejh

+0

bu seçenek ile gitmeli, 'os.system' kullanmak yerine' subprocess' modülünü kullanmalısınız. http://docs.python.org/library/subprocess.html –

İlgili konular