从命令行或其他程序使用 OpenBSD /usr/libexec/auth/login_*

从命令行或其他程序使用 OpenBSD /usr/libexec/auth/login_*

这可能是一个 xy 问题,请随时为我指出其他方向。

我正在尝试使用 Lua 插件或 CheckPassword 程序为 dovecot 的 passdb 编写登录机制。最终目标是能够使用专门用于 dovecot 的 yubikey OTP,而不是强制以用户身份进行所有登录。

我发现这里的设施/usr/libexec/auth似乎很有用。具体来说,我可以打电话/usr/libexec/auth/login_yubikey -d username并得到密码提示。成功授权后,程序将打印authorize到终端并以 0 状态退出。

现在,从另一个程序使用这些设施似乎很困难。login_*使用的设施不是readpassphrase(3)从 读取stdin,而是从/dev/tty(我必须承认,这里的区别让我困惑)。

我如何调用/usr/libexec/auth/login_*提供密码的设施,而不是提示用户输入密码?

如果这是不可能的,我如何从程序中为用户授权给定的密码或密钥?

相关内容