sudo-u 复制代码-H gsettings 设置 org.gnome.desktop.background 图片 uri 文件:///path/to/file

sudo-u 复制代码-H gsettings 设置 org.gnome.desktop.background 图片 uri 文件:///path/to/file

我正在使用 Ubuntu 18.04。
上述命令(以及与之一起使用的其他 gsetting 命令sudo -u <user_name> -H)表现出奇怪的行为。(我希望它设置当前用户的 gsetting)

  • 首先,在终端/脚本中使用上述命令后,如果我们尝试gsettings get桌面背景,它将显示为我们之前设置的图片,但桌面背景不会改变。
  • 第二部分是,如果我们注销并登录(或者甚至在设置 UI 中打开后台设置并关闭它而不做任何更改)现在gsettings get将显示回正常值,即当前显示图片(不是我们设置的)

请帮助我理解此行为,以及我该怎么做才能让其将 gsettings 设置为当前用户(使用 sudo)。
请参考:处理 sudo 时遇到问题
非常感谢!


编辑1:
刚刚发现这是因为缺少环境变量 DBUS_SESSION_DBUS_ADDRESS。使用时,sudo -Hu <user> env > text.txt我们得到的环境变量子集非常有限,其中缺少上述变量。来自:使用 cron 中的 gsettings 时背景没有改变

现在,我的问题归结为如何在通过 python 脚本设置 gsettings 时添加该环境变量!或者还有其他更好的方法吗?

相关内容