在 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 编写的。)