以用户身份从 sudo shell 运行具有正确主题和样式的程序

以用户身份从 sudo shell 运行具有正确主题和样式的程序

我试图在 OpenVPN 通过--up脚本连接后启动 qbittorrent。问题是该脚本是通过根配置文件运行的,因此启动应用程序有点问题。修复该问题后,下一个问题是应用程序打开,但没有在系统设置中完成任何用户配置文件主题和样式自定义(Kubuntu 20.04 和 KDE Plasma)

脚本(USER_NAME 是用户):

#!/bin/bash

xhost +
export DISPLAY=:0
sudo -u USER_NAME qbittorrent & disown
xhost -

我需要做什么才能以正确的主题和样式运行应用程序?

编辑:在 waltinator 的答案的帮助下,并通过使用查看用户环境变量,env我设法通过以下方式为程序提供正确的主题和样式:

#!/bin/bash

sudo -i -u USER_NAME DISPLAY=:0 KDE_FULL_SESSION=true qbittorrent & disown

保留这两个环境变量(如果您还想设置三个环境变量,XDG_RUNTIME_DIR以便程序不默认为),当OpenVPN 运行脚本时, /tmpviavisudo不会保留它们,因此每次我想要时都必须手动设置它们--up运行程序。我还删除了这些xhost调用,因为现在没有它们似乎也可以工作,我猜这是因为这个-i选项。

答案1

阅读man sudo,并将-i选项添加到您的sudo命令中。也读man sudoers吧。

顺便说一句,使用xhost +localhost并且xhost -localhost不会向网络上的其他系统开放您的 X 服务器。读man xhost

相关内容