应该使用什么程序在控制台上询问用户密码、检查它并仅返回退出代码?

应该使用什么程序在控制台上询问用户密码、检查它并仅返回退出代码?

什么计划只是询问指定用户的密码(即使调用用户是 root),如果成功则返回退出代码 0,如果失败则返回 1?

是否有这样一个简单的程序(即不使用编辑配置的“sudo”)来完成这项任务?

另外,我正在寻找可以登录用户(检查其密码、写入 auth.log)但不执行任何程序(如login)的程序,仅返回退出代码。

答案1

您需要一个称为pwauth。它的作用正如您描述的:接受用户名和密码,然后根据有效性返回退出代码。它旨在与 apache 的 mod_auth_external 一起使用以挂接系统身份验证,但应该可以很好地满足您的需要。

答案2

您试图做的是违背用户会话的目的,用户在登录他的帐户时已经输入了密码,因此再次询问您的任务是不礼貌的;如果您确实希望您的程序基于登录,那么最好的方法是支持密钥环,这允许用户自己选择是否为您的任务明确输入密码。

不要强迫用户correct horse battery staple再次输入他们刚刚输入的内容......

答案3

看起来最简单的方法是使用python-pam作为/usr/share/doc/python-pam/examples/pamtest.py示例。示例读取密码,使用 PAM 验证用户身份,并根据结果写入消息。可以轻松更改为不同的退出代码。

相关内容