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