我正在编写一个脚本来挂载可移动驱动器,然后将桌面背景设置为该驱动器上的文件。该脚本需要以 root 身份运行才能使用 cryptsetup 和 mount。但是当脚本以 root 身份运行时,我无法让 gsettings 工作以设置桌面背景。
如果我只是gsettings set org.gnome.desktop.background picture-uri file:///path/to/image.jpg
在脚本中写入,意味着 gsettings 也以 root 身份运行,什么也不会发生。
如果我改写sudo -u username gsettings set org.gnome.desktop.background picture-uri file:///path/to/image.jpg
,以便 gsettings 以用户名运行,则脚本将失败并出现以下错误:
(process:#####): dconf-CRITICAL **: unable to create file '/home/username/.cache/dconf/username': Permission denied. dconf will not work properly.
那么,如何才能使以 root 身份运行的脚本中的 gsettings 起作用?