PAM(3)
来源:互联网 发布:如何查mac地址值那个大 编辑:程序博客网 时间:2024/06/05 10:09
上一次说了对话函数,对话函数是PAM模块与使用PAM进行认证的应用程序进行信息交互的桥梁,通过对话函数PAM模块可以获得用户的输入信息(明文、密文),
还有两套很重要的函数
pam_set_data(pam_handle_t *pamh, const char *pname, void *pdata, void (*freefunc)(pam_handle_t *pamh, void *pbuf, int status)),
pam_get_data(pam_handle_t *pamh, const char *pname, (void **)precvbuf)
这两个函数用来通一个PAM模块中不同的PAM SPI之间进行信息交流
PAM SPI有这么几种(就是一个特定功能模块需要实现的接口)
关于认证的 pam_sm_authenticate pam_sm_setcred(),密码管理的 session操作的,就不一一说了,这是基本的内容,很多地方讲的,使用上面的两个函数实现不同接口之间的信息交互(当然只能按着顺序,如pam_sm_authenticate总是比pam_sm_setcred先调用,因此可以在pam_sm_authenticate 中设置一个数据内容用于标记认证的结果,在pam_sm_setcred中通过判断pam_sm_authenticate中设置的数据内容来判断认证结果),这里说一下freefunc这个函数,这个函数用来实现pdata的释放。
pam_set_item(pam_handle_t *pamh, int itemtype, (void *)pbuf);
pam_get_item(pam_handle_t *pamh, int itemtype, (void **)pbuf);
这两个函数是用来进行模块之间信息交互的,itemtype的种类是约定好的,不需要自己定义.
有了这些知识就可以写一个最为简单的认证模块了,下一篇将给出一个简单但是完整的PAM模块的例子.
- PAM(3)
- 一起写PAM(3)
- pam
- PAM
- FreeBSD5.3+vsftpd+pam虚拟用户设置
- rhel5.3修改pam,三次密码错误锁定账户
- PAM配置
- PAM简介
- PAM认证
- pam认证
- PAM后续
- PAM语法
- PAM详解
- Linux-PAM
- linux pam
- Linux-PAM
- PAM编程
- Linux-PAM
- nginx学习心得
- 初级使用github
- 第一个uwp程序-- owlGZTV 上架商店
- Andriod GridView不改变背景色实现网格线效果
- Swift中页面逆向传值
- PAM(3)
- The type org.apache.http.Header cannot be resolved. 的解决办法
- 基于WinInet API的HTTP编程
- tomcat+memcache+nginx实现共享
- PAM(4)
- 发布出现的错误
- 检测数据库各实例session分布情况的sql
- 童年生活两三事
- 前端(js、jquery等)