无法以其他用户身份运行 gedit

无法以其他用户身份运行 gedit

我以用户“foo”身份登录,如果我能够运行 gedit 并在 Ubuntu 12.04 机器上编辑文件,并将 DISPLAY 设置为:0

如果我“su - bar”然后尝试编辑文件,我会收到未指定协议的错误,并且无法打开所需的文件。这里可能是什么问题?

答案1

gedit是一个图形程序,因此不会像root直行那样运行sudo,您不应该以其他用户身份使用 straightsudo或 straight来运行它su

相反,如果你(即foo)有权以另一个用户身份运行程序sudo,这可能是最简单的方法运行为foogeditbar

xhost +local:bar
gksu -u bar gedit

如果您没有权限以其他用户身份运行程序sudo但您可以subar那么这是最简单的方法:

gksu -w -u bar gedit

标志-w(相当于--su-mode)使得(它是和gksu的前端)使用而不是。sudosususudo

  • 您不需要运行任何相应的xhost命令来完成gksu -w ...工作。

如果您想要一个图形终端实例(gnome-terminal),从中您可以运行任何内容,bar包括图形应用程序,您应该考虑只运行一个新的实例gnome-terminalbar您可以按照与运行相同的方式进行gedit,如上所述)。

答案2

你可以通过以下方式做到这一点

ssh -l 其他用户-X localhost gedit

您的桌面上运行了一个新窗口,但环境是“其他用户”!

我已经在我的机器上使用 Ubuntu 10.04 LTS 进行了测试!

答案3

您提供的语法看起来不正确。如果您想切换到用户“bar”,那么我认为您应该使用“su bar”。但如果这不正确,我认为您在尝试切换用户时会收到错误。也许是您的问题中有拼写错误,或者 su 无论如何都会接受它。

我认为问题更可能是 gedit 是一个基于 GUI 的编辑器,因此尝试在该用户的 x 会话中启动,如果您通过终端更改已更改的用户,则不会存在该会话。如果您使用“vi file_to_edit”会发生什么?Vi 是一个基于终端的编辑器,不应受到 GUI 问题的影响。


编辑:我需要买一副电脑眼镜,我以为你输入的命令是“su -bar”。但“su - bar”是有效的语法。

相关内容