我以用户 'foo' 登录,如果我能够在我的 Ubuntu 12.04 机器上运行 gedit 并编辑文件,显示设置为 :0
如果我“su - bar”然后尝试编辑文件,我会收到一个没有指定协议的错误并且它不会打开必要的文件。这里有什么问题?
gedit是一个图形程序,因此正如您不会像root使用 Straight 那样sudo运行它一样,您也不应该使用 Straightsudo或 Straight作为另一个用户运行它su。
相反,如果您(即foo)有权以另一个用户身份运行程序sudo,则这可能是最简单的运行foo方式geditbar:
xhost +local:bar
gksu -u bar gedit
Run Code Online (Sandbox Code Playgroud)
如果您无权以其他用户身份运行程序,sudo但您可以su,bar那么这是最简单的方法:
gksu -w -u bar gedit
Run Code Online (Sandbox Code Playgroud)
标志-w(相当于--su-mode)使(它是和 的gksu前端)使用而不是。sudosususudo
xhost命令即可gksu -w ...工作。如果您想要一个图形终端实例 ( gnome-terminal),您可以从中运行任何内容,包括图形应用程序,那么您应该考虑只运行一个新的asbar实例(您可以按照与运行 相同的方式进行操作,如上所述)。gnome-terminalbargedit
小智 -2
您提供的语法看起来不正确。如果你想切换到用户“bar”,那么我相信你应该使用“su bar”。但如果这是不正确的,我认为您在尝试切换用户时会收到错误消息。也许这是您问题中的拼写错误,或者 su 无论如何都会接受它。
我认为问题更可能是 gedit 是一个基于 gui 的编辑器,因此尝试在该用户的 x 会话中启动,如果您通过终端更改更改的用户,则该会话将不存在。如果您使用“vi file_to_edit”会发生什么?Vi 是基于终端的编辑器,不应受到 GUI 困难的影响。
编辑:我需要一些电脑眼镜,我以为你输入的命令是“su -bar”。但“su - bar”是有效的语法。
| 归档时间: |
|
| 查看次数: |
5269 次 |
| 最近记录: |