![环境中未设置 XDG_RUNTIME_DIR](https://linux22.com/image/1150416/%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%9C%AA%E8%AE%BE%E7%BD%AE%20XDG_RUNTIME_DIR.png)
我正在运行 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
请告诉我这是否安全。