创建用户ID `root` 强制`gedit` 创建用户配置文件

Win*_*nix 4 configuration permissions gedit sudo users

使用sudo权力和调用gedit顶级菜单时File Edit View Search Tools Documents Help丢失。

如果我创建用户 ID root并登录一次并调用gedit它是否会创建可能解决此问题的必要用户配置文件?

这会不会也让恼人的错误信息消失,每当我使用sudogksupkexec与提升权限,以一个普通用户gedit

Nautilus 和其他 Gnome 衍生的 Ubuntu 应用程序还有其他好处吗?

注意:通过sudo权力你可以谷歌pkexec gedit3.5k 命中、gksu gedit40k 命中或sudo gedit500k 命中。我是使用第一种方法的少数人,但我相信它会成为 Ubuntu 17.04 的标准。


2017 年 6 月 12 日更新以下是您在使用时遇到的错误列表pkexec gedit

(gedit:13003): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

** (gedit:13003): WARNING **: Set document metadata failed: Setting attribute metadata::gedit-spell-enabled not supported

** (gedit:13003): WARNING **: Set document metadata failed: Setting attribute metadata::gedit-encoding not supported

** (gedit:13003): WARNING **: Set document metadata failed: Setting attribute metadata::gedit-position not supported
Run Code Online (Sandbox Code Playgroud)

在此错误报告中,承诺自 2017 年 6 月 5 日起修复这些令人分心的消息。没有说明修复何时会在上游进行,也没有说明是否会实施功能或错误消息会消失。

请注意,错误报告是一年多前提交的,在那段时间里,它只影响了 18 人。

Kaz*_*lfe 12

再一次,凭着感觉。不要使用图形应用程序作为根!

现在,上述规则有一些例外。例如,请求 root 的 Ubuntu 控制面板的任何部分通常都是安全的,但这只是因为它只在需要时保留特权,此时它会立即将它们转储回正常模式。同样,它们也经过专门设计,可以root有效地使用并且不会损坏东西。简而言之,一切gedit和大多数其他应用程序都做不到。

如果您确实需要gedit/root文件夹中拥有自己的配置,请像这样启动它:

sudo -i gedit
Run Code Online (Sandbox Code Playgroud)

但是,由于多种原因,这仍然不起作用。您的菜单栏消失或多或少是Ayatana菜单系统工作方式的副作用。简而言之,系统正在尝试为用户创建/拥有的菜单对象root,这会导致事情明显中断。

您可以通过使用sudo's-E标志来解决缺少菜单的问题,但这仍然会导致 DBus/DConf/whatever 对您感到恼火。在这种模式下,菜单将直接嵌入到gedit的窗口中,因为我们仍然无法获得 DBus/Ayatana 的链接。

这与 Ubuntu 开发人员的情绪相呼应,并不是一个错误。他们认为 GUI 实际上是“简单模式”,而root访问实际上不是“简单模式”。如果需要root,请转到终端并在那里使用它。事实上,这几乎是一种有效的抵抗形式——如果你不能nano用来编辑文件,你就不应该以root用户的身份四处闲逛。

如果您绝对必须root在 GUI 下使用(我强烈建议您不要这样做,即使是它自己的用户),请创建一个名为的文件/etc/lightdm/lightdm.conf并将其放入该文件中:

[SeatDefaults]
greeter-show-manual-login=true
Run Code Online (Sandbox Code Playgroud)

使用重新启动lightdm服务sudo systemctl restart lightdm.service,您应该能够以root. 如果您不使用lightdm,请查找并按照与该显示管理器相关的说明进行操作。

您还需要重新启用 root 帐户,只需运行以下命令即可:

sudo passwd root
Run Code Online (Sandbox Code Playgroud)

确保您选择了一个非常强的密码,因为这将允许 root 登录到您的系统。请注意,这违反了所有建议,因为sudo存在并且更安全/不太可能让您意外破坏某些东西。

在这一点上,当您实际执行此操作时,gedit将在root用户会话中以 root 身份(如您所期望的那样)工作。但是,当您再次回到主会话时,它仍然会拒绝工作(出于上述原因)。


root不应该使用该帐户来绕过令人讨厌的Permission denied错误。将该消息视为以下内容:

嘿,您正在做的事情可能会对您的系统产生严重的副作用。仔细考虑并仔细检查您的命令,以确保您正在做的正是您打算做的。如果您确定这是您想要执行的操作,请升级到可用于执行您想要执行的操作的最低权限级别。

即便如此,看看是否有不涉及升级到特权帐户的解决方案。删除和重新创建损坏的用户比重新创建损坏的系统容易得多。