Gtk-WARNING: 调用Inhibit失败

我在尝试使用gedit时遇到了以下问题:
myPC@TM77:~$ sudo gedit /etc/pm/config.d/config
(gedit:12512): IBUS-WARNING **: The owner of /home/myPC/.config/ibus/bus is not root!
(gedit:12512): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

发生了什么?


2在这篇帖子中,你更关心哪个问题:你的 Wi-Fi 还是 Gedit? - jobin
3个回答

没有问题,使用gedit作为root用户编辑文件。我经常这样做,并且总是使用以下方法,这是正确的以超级用户权限使用gedit的方式:
gksudo gedit /etc/pm/config.d/config

以 root 权限编辑文件。

不确定为什么会有人给负评,因为这是唯一正确的答案,其他人说要使用另一个编辑器。所以我会告诉你并展示你为什么要这样做。

你永远不应该使用普通的 sudo 命令来启动图形化应用程序作为 Root 用户。你应该使用 gksudo(在 Kubuntu 上是 kdesudo)来运行这些程序。gksudo 会将 HOME 设置为 ~root,并将 .Xauthority 复制到临时目录中。 https://help.ubuntu.com/community/RootSudo#Graphical_sudo


@phpGeek 对我来说似乎是相关的。我刚刚尝试使用gksudo调用gedit,并没有收到任何上述的警告。 - Brilliand
现在建议使用sudo -i而不是gksudogksu,以避免后续的所有权和权限问题,因为gksugksudo已经过时。 - mchid

两条信息都是警告

IBUS-警告 **:/home/myPC/.config/ibus/bus的所有者不是root!

这是因为您正在使用sudo调用Gedit。这种情况发生是完全正常的。您可以尝试使用nanovim或其他非GUI编辑器,而不是Gedit。

Gtk-警告 **:调用Inhibit失败:GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:没有提供org.gnome.SessionManager的名称的.service文件

GD试图访问org.gnome.SessionManager的dbus指令,但该指令未提供。实际上,在正常安装中不存在该指令,因此可以安全地忽略该消息。


如果我没错的话,我不能使用 gedit 以 root 身份编辑文件。我必须使用 nano 或 vim,或者使用 gksudo。 - user215336
你可以,但不建议这样做。但无论如何,你收到的信息并不是非常重要的。你可以暂时忽略它们,进行你的更改,如果还有疑问,可以执行 chown -R $USER:$USER ~/ 命令来重新获得对所有文件的所有权。 - Braiam
1@user215336 你可以这样做,正如你提到的,你必须使用gksugksudo,或者在打开的终端中使用sudo gedit来获取root权限。同样地,你也需要以相同的方式使用sudo来运行vim或nano。正如Braiam所提到的,这些警告可以安全地忽略。请参考这里对sudo进行深入解释的链接:https://help.ubuntu.com/community/RootSudo - mchid

我也遇到过这个问题,并发现重新安装gedit可以解决这个问题。
sudo apt-get purge gedit
sudo apt-get install gedit