Debian
Firefox 執行從具有權限刪除的根執行腳本失敗
我無法從 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 啟動。