什么计划只是询问指定用户的密码(即使调用用户是 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 验证用户身份,并根据结果写入消息。可以轻松更改为不同的退出代码。