0
点赞
收藏
分享

微信扫一扫

使用Python扩展PAM(part 1)

0、

使用Python扩展PAM实现一些额外的功能,比如ssh、vpn等二次验证。

1、准备工具

实现这个功能需要用到pam_python pam-python 

注意!是pam-python不是python_pam

Pam-python是一个开源的Python模块,用于编写自定义PAM模块。Pam-python使用Python脚本来扩展PAM功能。 它使用Cython和Python C API与PAM库进行交互,支持Python 2和Python 3。Pam-python模块提供了一些可重写的钩子函数,可以在认证流程的不同阶段进行自定义操作。

Python-pam也是Python模块,但它是对PAM库的简单绑定。 Python-pam不像Pam-python那样提供重写的钩子,而是提供了一个简单的接口来与PAM库进行交互。

2、编译安装pam-python

pam-python依赖于gcc、pam-devel、python-devel几个包(我在centos下操作,Debian ubuntu环境下没有测试。不过官方文档中可以使用apt-get直接安装)

安装这些依赖很简单

yum install gcc pam-devel python-devel -y

之后就可以解压缩源码包进入src目录进行编译

直接使用make命令即可

cd pam-python-1.0.8/src/
make

我使用的系统是CentOS7.9,在编译过程中出现了一些问题。如图所示

使用Python扩展PAM(part 1)_Python

要解决这个问题可以通过编辑Makefile文件来解决

编辑Makefile文件如图位置添加 -Wno-error,在编译命令中添加 -Wno-error 选项,来忽略重定义错误。

使用Python扩展PAM(part 1)_PAM_02

再次执行make命令进行编译。

使用Python扩展PAM(part 1)_Python_03

编译完成完成后可以看到生成了pam_python.so文件,使用make install或者手动mv这个文件到/lib/security 后就可以使用这个文件进行pam模块的配置。

第一部分到此结束。

举报

相关推荐

0 条评论