环境中未设置 XDG_RUNTIME_DIR

环境中未设置 XDG_RUNTIME_DIR

我正在运行 Ubuntu 14.04 LTS。我想在 LightDM 登录期间运行 GUI 应用程序,我通过添加此行来实现此目的/etc/pam.d/lightdm

auth required pam_exec.so debug log=/path/to/file.log /path/to/script.sh

然后脚本将调用二进制文件。我知道脚本正在被调用,因为我添加了一些日志。问题是,当脚本调用二进制文件时,我收到此错误。

error: XDG_RUNTIME_DIR not set in the environment.
(binary:3781): Gtk-WARNING **: cannot open display:

检查日志后,我发现该脚本正在由 root 调用。

在日志中,我还尝试回显 DISPLAY 和 XAUTHORITY,但两者都是空白。我尝试使用 gksudo 调用脚本中的二进制文件,错误相同,您对此有什么安全的解决方法吗?

答案1

我可以让它工作,我只是在调用二进制文件之前在脚本上设置了以下环境变量。

export XAUTHORITY=/var/run/lightdm/root/:0
export DISPLAY=:0

请告诉我这是否安全。

相关内容