我有一個Linux應用程序(使用GTK),需要以root用戶身份運行(它讀取和寫入/ dev/sd *)。認證GTK應用程序以root權限運行
,而不需要用戶打開一個root shell,或當他啓動我的應用程序中使用「命令」手動每一次的,我不知道是否該應用程序可以使用一些操作系統提供的API來獲得root權限。 (注意:gtk應用程序不能使用「setuid」模式,所以這不是一個選項。)
這裏的優勢是更簡單的工作流程:用戶可以從他的默認用戶帳戶雙擊我的應用程序桌面,而不必打開根終端並從那裏啓動它。
我問這個問題是因爲OS X提供了這個:一個應用程序可以要求操作系統啓動一個帶有根權限的可執行文件 - 操作系統(而不是應用程序)然後要求用戶輸入他的憑證,驗證它們然後啓動目標根據需要。
我不知道是否有類似的針對Linux(Ubuntu的,如)東西
澄清:
所以,在PolicyKit的提示我不知道如果我可以用它來獲得R/W後訪問「/ dev/sd ...」塊設備。我發現這些文檔很難理解,所以我想我會先花一點時間試着去理解它,然後再問這是否可能。
更新:
該應用程序是爲unsavvy的Linux用戶遠程操作的磁盤修復工具,以及那些Linux的菜鳥不會有使用sudo,甚至改變他們的用戶的組成員太多瞭解,特別是如果他們的磁盤剛剛開始動作,他們就會嚇壞了。這就是爲什麼我尋求避免這種技術問題的解決方案。
確實有可能像這樣設置 - 例如,新立得軟件包管理器通常是這樣設置的。 – caf 2010-03-08 12:11:17
我不確定你應該真的想以root身份運行。如果您只需要訪問磁盤,最好將用戶添加到「磁盤」組。 – 2010-03-08 23:25:40
米蘭 - 我的應用程序充當一次性磁盤修復工具。我不認爲任何想使用它的人都願意永久性地改變他的系統範圍的設置。 – 2010-03-08 23:30:23