我正在使用 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 时添加该环境变量!或者还有其他更好的方法吗?