如何以编程方式(python)使用OS用户验证用户名/密码

时间:2011-09-11 13:16:59

标签: python linux authentication login

我正在编写一个允许用户登录的python程序。我不想实现自己的身份验证,而是希望利用OS(linux)机制。也就是说,当用户通过输入用户名/密码对(应该是有效的OS用户)尝试登录我的应用程序时,我需要通过操作系统对该对进行身份验证。怎么做 ?它可能需要子进程模块,但我试过没有运气。

2 个答案:

答案 0 :(得分:5)

尝试通过PAM或类似的

使用Python PAM

答案 1 :(得分:2)

这应该可以让您的脚本读取/etc/passwd/etc/shadow文件,其中包含有关Linux系统上的用户名和密码的详细信息。请注意,脚本必须具有对文件的读取权限,具体取决于具体情况,可能是不可能的。

这里有两篇很好的文章解释了这些文件的格式,它们应该告诉你需要知道的一切,以便让你的脚本阅读并理解它们:

顺便说一下,当它谈到加密密码时,就意味着它已经使用DES算法加密了。您可能需要使用pyDes或DES算法的其他python实现,以便您的脚本创建一个加密密码,它可以与/etc/shadow中的密码进行比较。