> 文章列表 > PAM关键配置说明笔记

PAM关键配置说明笔记

PAM关键配置说明笔记

(1)、include和substack配置选项区别:

include:将其他配置文件中的流程栈包含在当前的位置,就好像将其他配置文件中的内容复制粘贴到这里一样。
substack:运行其他配置文件中的流程,并将整个运行结果作为该行的结果进行输出。该模式和 include 的不同点在于认证结果的作用域:如果某个流程栈 include 了一个带 requisite 的栈,这个 requisite 失败将直接导致认证失败,同时退出栈;而某个流程栈 substack 了同样的栈时,requisite 的失败只会导致这个子栈返回失败信号,母栈并不会在此退出。

(2)、程序调用PAM流程
1. 使用者开始执行 /usr/bin/passwd 这支程序,并输入密码;
2. passwd 调用 PAM 模块进行验证;
3. PAM 模块会到 /etc/pam.d/ 找寻与程序 (passwd) 同名的配置文件;
4. 依据 /etc/pam.d/passwd 内的设置,引用相关的 PAM 模块逐步进行验证分析;
5. 将验证结果 (成功、失败以及其他讯息) 回传给 passwd 这支程序;
6. passwd 这支程序会根据 PAM 回传的结果决定下一个动作 (重新输入新密码或者通过验证!)

(3)、telnet和ssh的pam配置
telnet引用/etc/pam.d/login
ssh引用/etc/pam.d/sshd

(4)、验证类型
验证类别主要分为4大类
类型    功能
认证管理(auth)      :接收用户名口令并认证,设置秘密信息
                    对用户身份进行识别,如提示输入密码,判断是否为root。
账户管理(account)  :检查账户是否允许登陆(过期、时间段限制)
                    对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
会话管理(session):记录用户登陆与注销时的信息(日志记录在/var/log/secure )
                  定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。
口令管理(password)    用来修改用户的口令

(5)、控制类型
验证控制类型
类型    功能
required    :不论成功或失败都会继续后续的验证流程
              表示需要返回一-个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下–验证,所有此类型的模块都执行完成后,再返回失败。
requisite    :失败就终止,返回Fail
             与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient    :成功就终止,反之忽略结果
             如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional    :无论验证结果如何,均不会影响(通常用于session类型)
              不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session 类型)

参考链接:
https://www.dandelioncloud.cn/article/details/1419660970993192961
https://mp.weixin.qq.com/s/Qua4XYPdM9YUFamm187Ieg
https://www.cnblogs.com/yanghehe/p/12294128.html
https://www.cnblogs.com/yanghehe/p/12294128.html
https://www.golinuxhub.com/2018/08/how-to-lock-or-unlock-root-normal-user-pamtally2-pamfaillock-linux/