2012-03-10 99 views
3

我正在尋找一種方法來升級我正在開發的一個python GUI應用程序中的權限。我想要的模型是GUFW。我喜歡你如何不必以root身份運行主程序,但是當你做任何事情「內核」時,你必須「解鎖」它。在Python腳本中升級Privilages

我有一個程序,我正在開發需要保存在用戶的主目錄樹或/ usr(需要根升高)的目錄中的文本文件。

我不想以root身份運行程序,但在需要將文件保存到與運行程序的用戶不同的用戶(本例中爲root)時調用root訪問權限。

我不想將其保存到一個臨時位置,並恢復到(BA)SH調用,比如:

os.system('gksu cp /tmp/myfile /usr/systemdir/myfile') 

我想Python的範圍內做這一切編程,如果可能的話。將來,我可能需要的操作不是簡單地創建一個文件,但可能需要在文件中間添加一些附件。

另外,在完成保存操作之後,我想讓privies降級。

有人可以指點我的教程或一些示例代碼爲這個嘗試?

問候,

Narnie

+0

您是否找到解決方案? – 2014-09-23 22:46:48

回答

1

你想要的是PolicyKit - Freedesktop的規格和軟件正是這種做。 http://ubuntuforums.org/showthread.php?t=1359397是一個教程和示例代碼,用於Python的使用(雖然沒有親自使用過PolicyKit,但我不能說它有多好或不好)。請注意,對於新的dbus和glib,您需要使用GObject內省(from gi.repository import DBus)而不是舊的python-dbus綁定,並且與示例代碼相比,這幾乎肯定會發生流式更改。

+0

正如ubuntuforum的人說的那樣,文檔真的很想這樣做。 DBus對我來說很神祕,PYGobject文檔也很稀少,但我找到了它的例子。恐怕從移動到GTK3,我需要更多的手持和從python-dbus到PyGobject內省的翻譯。我試圖通過論壇工作,但它會將您發送給另一個不完整的dbus教程。我不是想讓自己的頭在水面上......我正在尋找更長的浮潛! – narnie 2012-03-10 22:31:28