PAMモジュールにGTKウィンドウを追加しようとしています。私のテストPAMアプリケーションでは動作しますが、デスクトップログインまたはロック解除中は機能しません。ここに答えがない別の質問があります。https://stackoverflow.com/questions/59011871/gtk-pam-module-not-showing-on-login
これが可能かどうか疑問に思いますか?それ以外の場合は、ログインUI(gnome-screensaver、gdm-password)を統合/カスタマイズし、PAMに認証を実行させる方法は何ですか?
答え1
PAMモジュールがXサーバと通信しようとするのは不適切です。ログインセッションでPAMモジュールを使用している場合、ユーザーのX11セッションはセッションが開始されるまで初期化されないため、とにかく通信するX11サーバーはありません。 PAMモジュールは$ DISPLAYについて知らず、X Cookieにアクセスできません。これは、セッションの開始後にディスプレイマネージャによって設定されます。
ユーザーがログインしたら、gdmまたは他のディスプレイマネージャにプロセスを実行させることをお勧めします。何かを表示する必要がある場合期間ログインすると、このログインをサポートするようにgdmを変更できます。
不可能なことではないという言葉ではありません。たとえば、モジュールに dbus を使用して、gdmgreeter のコンテキストで開始されたサービスと通信させることができます。