我昨晚在我的机器上安装了 debian。现在,我不明白为什么在以 root 身份运行时无法从终端运行 GUI 应用程序。
例如:
sudo -i
glxgears
Run Code Online (Sandbox Code Playgroud)
生成以下输出:
No protocol specified
Error: couldn't open display :0
Run Code Online (Sandbox Code Playgroud)
但是当我第一次打开终端时,我可以glxgears
从用户帐户运行。只有在我这样做之后sudo -i
,问题才会出现。我尝试运行的任何 GUI 应用程序都会发生这种情况。我认为它可能与 X11 有关,但我不确定。
系统:Linux Mint 18.1 64 位 Cinnamon。
目标:定义Bash别名以在从模拟器以root模式打开文件时启动各种CLI和GUI文本编辑器。gnome-terminal
例如,以下别名似乎按预期工作:
alias sunano='sudo nano'
Run Code Online (Sandbox Code Playgroud)
alias suxed='sudo xed'
Run Code Online (Sandbox Code Playgroud)
他们都以root身份打开文件。
我有一个问题gksudo
与sublime-text
:
alias susubl='gksudo /opt/sublime_text/sublime_text'
Run Code Online (Sandbox Code Playgroud)
有时它有效。大多数时候它什么都不做。
我如何调试这种行为不一致的东西?它不输出任何东西。没有错误信息或类似信息。
gksudo
已在 Debian 中被弃用,也不再包含在 Ubuntu 18.04 Bionic 中,所以让我将这个问题重新表述为一个仍然有效的问题:
如何在 Linux 的 GUI(和 CLI)中正确编辑系统文件(以 root 身份)?
在这种情况下,我正确地定义为安全,例如,在文件编辑期间发生断电,另一个示例可能是 SSH 连接丢失等。