Sudo

無法在超級使用者模式下打開 GUI 編輯器

  • March 9, 2019

我試圖編輯我sources.list的以添加本地鏡像資訊。我對命令行編輯器不滿意,所以我嘗試使用sudo mousepad /etc/apt/sources.list.

我收到以下錯誤報告。

No protocol specified

(mousepad:4942): Mousepad-ERROR **: Cannot open display: 

我嘗試了其他幾個編輯器,例如 gedit、kwrite 等,但我得到了類似的錯誤報告。

No protocol specified

** (gedit:4957): WARNING **: Could not open X display
No protocol specified
Unable to init server: Could not connect: Connection refused

(gedit:4957): Gtk-WARNING **: cannot open display: :0

我在執行 Debian Jessie 的本地 64 位系統上。

您不應該以 root 身份執行編輯器來編輯系統文件,而應該使用sudoedit(尤其是因為您已經sudo設置了)。這將製作文件的副本,您可以對其進行編輯,在您選擇的編輯器中打開它,等待您完成編輯,如果您對其進行了更改,請將其複制回系統文件。

更詳細地說,你會執行類似的東西

SUDO_EDITOR="gedit -w" sudoedit /etc/apt/sources.list

這會:

  • 檢查您是否被允許編輯文件(根據中的sudo配置/etc/sudoers;您的應該已經可以了);
  • 複製/etc/apt/sources.list到臨時文件並使其可編輯;
  • gedit臨時文件開始;
  • 等待您關閉文件(這就是我們需要該-w選項的原因);
  • 檢查您是否對臨時文件進行了更改,如果是,請將其複製到原始文件上。

您可以SUDO_EDITOR在 shell 的啟動文件中永久設置(例如 ~/.bashrc)。如果未定義,sudoedit也會檢查VISUALand EDITOR。您可以指定任何您喜歡的編輯器,只要它能夠等待編輯會話完成即可。

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