如何在以 sudo 启动的脚本中以普通用户身份运行 gsettings 或“nohup nm-applet &”?

如何在以 sudo 启动的脚本中以普通用户身份运行 gsettings 或“nohup nm-applet &”?

我编写了一些包含命令的脚本,例如:

gsettings ...
nohup nm-applet &

在没有 sudo 的情况下运行脚本(作为普通用户)时,这两个命令都会显示反馈。

当我使用 sudo 启动脚本时,脚本成功运行,但这些命令没有显示任何反馈。

whoami即使已经显示普通用户,使用此类命令通过 sudo 运行脚本也不起作用。例子:

#!/bin/bash
exitfn() {
#try1
nohup nm-applet &
#try2
sudo -i -u normaluser bash <<EOF
whoami
nohup nm-applet &
EOF
#try3
su - normaluser -c "whoami && nohup nm-applet &"
}

trap "exitfn" INT
sudo killall nm-applet
sleep 3600
trap SIGINT

最后我选择将脚本部分分为普通用户部分和需要 sudo 的部分,但我仍然想知道为什么会出现这种情况。有没有办法让这两个命令在使用 sudo 调用的脚本中运行?

更新

设定

事实证明我需要添加,gsettings --schemadir 因为我安装的扩展只在主目录中;不在根部。

sudo -E按照@meuh的建议添加

nm-小程序:

使用sudo,它确实运行了,但没有显示在桌面notifbar上。没有它sudo,它就跑了显示在桌面通知栏上。

相关内容