用Python 3在Linux中验证用户

2 投票
2 回答
2893 浏览
提问于 2025-04-16 07:17

我写了一个程序,需要用Linux的用户名和密码来验证用户。我觉得这应该和PAM有关。我在谷歌上搜索了Python3的PAM模块,但没有找到。有没有现成的PAM库可以用,还是我自己动手做一个库比较好?使用PAM会有一些特别的安全风险吗?

我知道可以用Python3的spwd类来验证用户,但我不想用那个,因为那样的话我的程序就得以root权限运行。

2 个回答

1

+che

你提到的那个 Python pam 模块不支持 Python3。我知道有三个 pam 模块,分别是 {'pam', 'pypam', 'spypam'},但是它们都不兼容 Python3。

我已经对 Chris AtLee 原来的 pam 包进行了修改,使它可以在 Python3 上使用。现在我在整理一下,准备再反馈给他。

4

虽然有点晚了,但我想把这个信息分享出来,方便大家通过谷歌找到:

有一个python3版本的模块,我在这里维护:https://github.com/leonnnn/python3-simplepam。这个名字和python2版本不一样,是为了避免和一个叫做python3-pam的Ubuntu软件包混淆,不过除了名字,功能上和Chris AtLee的模块是一样的。

在Fedora 19及以后的版本中,也可以通过yum来安装这个python3-simplepam模块。

撰写回答