0

我有一个在通过 systemd 启动的 linux 系统中以 root 身份运行的服务。该服务有时可能会在用户的当前登录环境中生成一个 GUI(我通过 DBUS 从 Logind 获取 Display 和 Xauth 的值)。gui的启动工作,但环境搞砸了。

目前 gui 是通过fork和启动的execvp。在使用和删除调用execvp权限之前。setuidsetgid

使用正确的环境变量启动进程的合适方法是什么?目前,当尝试policykit从应用程序中使用时,我收到一个错误,即/dev/tty找不到当前的等等。

是否适合使用su -l?还是有其他方法可以以不同的用户身份启动进程?

4

1 回答 1

0

su允许您指定要运行的用户,例如:

su nonrootuser -c "/usr/bin/mygui"
于 2018-06-25T12:49:26.203 回答