我正在编写一个允许用户登录的python程序。我不想实现自己的身份验证,而是希望利用OS(linux)机制。也就是说,当用户通过输入用户名/密码对(应该是有效的OS用户)尝试登录我的应用程序时,我需要通过操作系统对该对进行身份验证。怎么做 ?它可能需要子进程模块,但我试过没有运气。
答案 0 :(得分:5)
尝试通过PAM或类似的
使用Python PAM答案 1 :(得分:2)
这应该可以让您的脚本读取/etc/passwd
和/etc/shadow
文件,其中包含有关Linux系统上的用户名和密码的详细信息。请注意,脚本必须具有对文件的读取权限,具体取决于具体情况,可能是不可能的。
这里有两篇很好的文章解释了这些文件的格式,它们应该告诉你需要知道的一切,以便让你的脚本阅读并理解它们:
顺便说一下,当它谈到加密密码时,就意味着它已经使用DES算法加密了。您可能需要使用pyDes或DES算法的其他python实现,以便您的脚本创建一个加密密码,它可以与/etc/shadow
中的密码进行比较。