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,在编译过程中出现了一些问题。如图所示
要解决这个问题可以通过编辑Makefile文件来解决
编辑Makefile文件如图位置添加 -Wno-error,在编译命令中添加 -Wno-error 选项,来忽略重定义错误。
再次执行make命令进行编译。
编译完成完成后可以看到生成了pam_python.so文件,使用make install或者手动mv这个文件到/lib/security 后就可以使用这个文件进行pam模块的配置。
第一部分到此结束。
标签:编译,Python,pam,python,part,devel,PAM From: https://blog.51cto.com/quietguoguo/6251031