如何在PAM模块中显示GUI?

如何在PAM模块中显示GUI?

我正在尝试在 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 上下文中启动的服务进行通信。

相关内容