打开应用程序,例如编辑器或者Gnome 文本编辑器在sudo
终端中,将使用默认首选项打开应用程序,而且它不允许我更改这些设置;然而,作为管理用户,我更改了各种似乎被忽略的首选项。
这是用于比较的屏幕截图:root vs. user
当尝试使用 sudo 打开应用程序后更改首选项时,我在终端中收到以下错误/警告(其中tedit
是指向 的符号链接gnome-text-editor
):
(tedit:37067): dconf-WARNING **: 11:36:56.149: failed to commit changes to dconf: Error spawning command line “dbus-launch --autolaunch=cca92021290f49f5b00d396a
所以,有没有办法更改以 root 权限打开应用程序时要遵循的 root 首选项?
我尝试了以下方法但没有成功:
- 以 root 身份登录
su root
,然后打开应用程序; - 使用以下命令打开应用程序
gksu
; - 编辑特定应用程序的 gsettings 架构的默认参数
/usr/share/glib-2.0/schemas/org.gnome.TextEditor.gschema.xml
; - 以管理员身份打开目录
/usr/share/applications
,然后使用 .desktop 文件启动应用程序。
编辑1
我刚刚找到了sudo -E
一个解决方法,可以在我的用户环境中使用 root 打开文件,例如:
sudo -E gnome-text-editor [path-to-file]
但我仍然渴望知道是否有一种简单的方法可以永久更改根首选项。
编辑2
我偶然发现预见的方法(3),即更改模式的默认值,确实有效,但您需要使用以下命令重新编译它们:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
但我认为这是另一种解决方法,而不是真正的答案。
答案1
取决于设置...在这种情况下(gedit
首选项),设置通常通过dconf
(在相应用户的中XDG_CONFIG_HOME
)存储在二进制文件中。但是,由于当您调用with时dconf
无法访问 a (这就是您收到这些警告消息的原因),因此它不起作用。人们通常尝试通过获取地址、导出地址等来解决问题, 我认为最直接的方法是通过DBUS_SESSION_BUS_ADDRES
gedit
sudo
dbus-run-session
例如将gedit
配色方案设置为晒黑对于 root 你可以运行:
sudo -i -u root sh -c 'exec dbus-run-session -- gsettings set org.gnome.gedit.preferences.editor scheme "solarized-dark"'
或者,直接打开gedit
sudo -i -u root sh -c 'exec dbus-run-session -- gedit'
并根据需要进行自定义,设置将被保存以供下次运行时使用sudo gedit
。