Ubuntu

為什麼我得到權限被拒絕輸出為什麼我執行 pkexec /opt/lampp/manager-linux-x64.run ?正常嗎?

  • August 13, 2019

我按照連結在“顯示所有應用程序”部分添加 Xampp 伺服器,通常我們可以看到安裝的所有 GUI 應用程序。

但在 Xampp 的情況下就不同了。我們必須手動操作。所以我使用以下方法打開了文件:

pkexec nano /usr/share/applications/xampp-control-panel.desktop

因為我不能使用這個:

007@bond:~$ pkexec gedit /usr/share/applications/xampp-control-panel.desktop

Unable to init server: Could not connect: Connection refused

(org.gnome.gedit:17349): Gtk-WARNING **: 20:18:25.529: cannot open display: 

無論如何,當我嘗試檢查 Xampp 是否執行 pkexec 時,我收到了這個錯誤:

007@bond:~$ Exec=pkexec /opt/lampp/manager-linux-x64.run
bash: /opt/lampp/manager-linux-x64.run: Permission denied

我的問題/疑問

  1. pkexec不是gksudo的替代品嗎?那為什麼有時它不起作用?

pkexec命令在 GUI中用於打開只有 root 通常可以寫入的文件。例如,如果你想用它gedit來打開文件,你應該使用pkexec它。

但是,您嘗試打開它的錯誤粘貼pkexec表明您很可能不在 GUI 中,因為$DISPLAY變數為空(根據該消息):

Gtk-WARNING **: 20:18:25.529: cannot open display: 

您可能在 GUI 中,但不知何故您失去了$DISPLAY設置。例如,如果您通過 ssh 連接到另一台機器,您需要使用 ssh 的 X11 轉發選項(-X或者可能-Y)來轉發 GUI 顯示,以便該機器上的客戶端可以顯示在您的機器上。

如果您不介意使用終端文本模式編輯器,例如nano,那麼只需sudo直接使用:

$ sudo nano /usr/share/applications/xampp-control-panel.desktop

或者,更好的是,使用sudoedit(或等效sudo -e)與要編輯的文件的路徑,如果您已正確配置編輯器,在這種情況下sudo將創建您可以編輯的文件的副本,然後打開您的編輯器作為您的非特權使用者,最後將修改後的內容複製回原始位置,覆蓋您要修改的文件。

引用自:https://unix.stackexchange.com/questions/535387