我知道我不是 root 用户,因为我无法浏览软件包。首先,我知道这页面,但它对我来说不起作用。按照这些说明操作后,当我从 Unity 打开 Sublime 时,我会收到提示,但我仍然无法浏览包。如果我gksu subl
在终端中使用打开 sublime,什么也不会发生。如果我sudo subl
这样做,它会打开,我可以浏览包。每次都以 sudo 而不是 gksu 来打开 sublime 可以吗?
编辑:实际上,当我从 Unity 打开 Sublime 时,它会提示输入密码,然后根本不打开。
编辑:gksudo subl
与 gksu 效果相同。我从网站安装了 Sublime(单击 Ubuntu 64 链接,下载,单击下载,然后转到软件中心)。“which subl”返回/usr/bin/subl
。gksu 已安装。Glutanimate,是的,这就是我的意思。知道发生了什么吗?我只能使用 sudo 浏览它们。
/usr/share/applications/sublime-text.desktop
:
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=gksu /opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;
[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;
[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;
答案1
当gksu
/gksudo
不起作用或不可用时,您可以改用。sudo -H
sudo
如果您使用而不是gksu
/来运行图形程序gksudo
,则应该使用sudo -H ...
(或sudo -i ...
) 而不是仅仅sudo ...
。
sudo -H subl
sudo -i subl
(普通方法sudo ...
和上述方法通常都无法在 Unity dash 上运行,因为它们需要一个终端来提示您输入密码。但您可以从终端运行它们。)
主要原因是被认为是不好的使用 normal 运行图形程序的sudo
原因是,这将运行应用程序并将其HOME
环境变量设置为非 root 调用者的主目录 ( ) 而不是 root 的主目录 ( )。这通常/home/username
/root
导致原本应该属于普通用户的配置文件属于 root(并且无法访问)。
sudo
使用该标志运行-H
可确保使用 root 的主目录来防止这种情况。
sudo -i
不仅如此,它还能在模拟的 root 登录会话中运行程序。当我们的目标只是以 root 身份运行图形程序而不会出现问题时,我不知道有什么强有力的理由来选择sudo -H
和中的一个。sudo -i