Debian

Firefox 執行從具有權限刪除的根執行腳本失敗

  • July 16, 2009

我無法從 sudoed python 腳本執行 firefox,該腳本將權限授予普通使用者。如果我寫

# 須藤蟒蛇
>>> 導入作業系統
>>> 導入密碼,grp
>>> uid = pwd.getpwnam('norby')[2]
>>> gid = grp.getgrnam('norby')[2]
>>> os.setegid(gid)
>>> os.seteuid(uid)
>>> 導入瀏覽器
>>> webbrowser.get('firefox').open('www.google.it')
真的
>>> # 它返回 true 但不起作用
>>> 從子流程導入 Popen,PIPE
>>> p = Popen('firefox www.google.it', shell=True,stdout=PIPE,stderr=PIPE)
>>> # 不執行命令

我認為這不是 python 問題,而是 firefox/iceweasel/debian 配置問題。也許firefox只讀取UID而不是EUID,並且不執行程序,因為UID等於0。你怎麼看?

您必須導出名為 DISPLAY 且值為 ‘:0.0’ 的環境變數。這可能使它起作用。如果您不知道如何使用 python 導出環境變數,請諮詢 stackoverflow。

問題是它無法訪問 X 伺服器上的顯示,它正在執行嗎?我不建議使用 root 權限執行 firefox,這就像在 windows 機器上執行 IE 一樣。

您在評論中說您正在以較低的執行級別啟動它。該錯誤是因為您在 X 出現活動顯示之前在該較低級別啟動了 firefox。延遲它的執行直到 X 啟動。

引用自:https://serverfault.com/questions/41245