Sudo
無法在超級使用者模式下打開 GUI 編輯器
我試圖編輯我
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
也會檢查VISUAL
andEDITOR
。您可以指定任何您喜歡的編輯器,只要它能夠等待編輯會話完成即可。