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:
ログも確認すると、スクリプトがルートによって呼び出されていることがわかりました。
ログでは、DISPLAYとXAUTHORITYをエコーしようとしましたが、両方とも空白です。スクリプトでバイナリを呼び出すためにgksudoを使用しようとしましたが、同じエラーがあります。これに対する安全な回避策はありますか?
動作させることができました。バイナリを呼び出す前に、スクリプトに次の環境変数を設定するだけです。
export XAUTHORITY=/var/run/lightdm/root/:0
export DISPLAY=:0
これが安全かどうか教えてください。