Jos*_*eek 6 linux dbus ubuntu ubuntu-unity
在 Ubuntu 桌面 13.10 上,我有一个以 root 身份运行的安装脚本。它基本上根据需要配置计算机,但我需要使用dconf
. 该脚本在普通用户下的终端窗口中运行sudo
。我需要运行命令dconf write /com/canonical/unity/launcher/favorites "['unity://expo-icon', <...>']"
。(它以各种不同的设置运行。)
我已经以登录用户的身份测试了这些命令,它们工作得很好。但是,当我以 root 身份登录时,我不能这样做sudo -u bitc dconf write <...>
;我收到类似error: Could not connect: Connection refused
或的错误unable to create directory '/root/.cache/conf'
。
该脚本必须以 root 身份运行,因为它执行一些其他任务,但似乎dconf
必须在特定登录会话下运行,而不仅仅是用户,才能对其进行配置。我宁愿没有单独的脚本dconf
,但这是可能的。有没有办法附加到登录会话(或以其他方式dconf
为该用户设置密钥)?
(脚本是用 node.js 用 javascript 编写的。)
这样做就足够了吗?
sudo -u bitc HOME=/home/bitc dconf write <...>
^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
我正在尝试做类似的事情。我有一个通过 SSH 连接并以 root 身份运行的脚本。我希望它更改用户的一些设置。这似乎对我有用:
sudo -u vagrant HOME=/home/vagrant dbus-launch --exit-with-session gsettings set org.freedesktop.ibus.general use-system-keyboard-layout true
Run Code Online (Sandbox Code Playgroud)
我认为这可能很糟糕,因为它会在本次会话期间生成一个新的 dbus 守护进程,但如果没有 dbus-launch,我会遇到 dbus 错误。也许这些是 gsettings 特有的,但我想提一下,以防有帮助。
归档时间: |
|
查看次数: |
3104 次 |
最近记录: |