极客油画

  1. required: 必需的

如果一个模块被标记为 required,则该模块必须成功执行。如果该模块失败,系统会记录错误并继续尝试后续的模块。

只有所有 required 模块都成功,整个认证过程才可能成功。

  1. requisite: 必要的

如果一个模块被标记为 requisite,则该模块必须成功执行。如果该模块失败,认证过程会立即终止并返回失败,不会继续执行后续的模块。

  1. sufficient: 足够的

如果一个模块被标记为 sufficient,则该模块的成功可以立即导致整个认证过程的成功,前提是之前没有其他 required 或 requisite 模块失败。

如果 sufficient 模块成功,认证过程将不再检查后续的模块。

基本概念

模块(Module):PAM系统中的每个功能单元。每个模块负责处理特定的认证任务。

堆栈(Stack):一系列按顺序调用的模块

控制标志(Control Flag):定义模块在认证过程中的行为,常用的控制标志有 required、requisite、sufficient和optional。

服务名(Service Name):表示需要认证的服务,如login、sshd等。一般以文件名的形式存在。

配置文件

PAM的配置文件通常位于 /etc/pam.d目录下,每个服务有一个对应的文件。例如,/etc/pam.d/login文件用于配置 login 服务的认证策略。

配置文件格式

每个配置文件包含多行,每行定义一个模块及其控制标志。每一行的格式如下:

<module type>    <control flag>    <module path>     <module arguments>

moduel type: 模块的类型,常用的类型有 auth,account,password,session。

control flag: 模块的控制标志,如 required,requisite,sufficient,optional。

module path:模块的路径,通常省略路径,直接写模块名称。

module arguments: 传递给模块的参数。

常用的模块类型

auth: 处理身份验证

account: 处理账户管理,如检查账户是否已过期

password: 处理密码管理,如更改密码

session: 处理会话管理,如登录和注销时的操作

测试和调试

测试配置: 在修改PAM配置文件后,务必测试新的配置以确保其正确性。可以使用 pamtester 工具进行测试。

查看日志: PAM的操作日志通常记录在 /var/log/auth.log 或 /var/log/secure 中,可以通过查看这些日志文件来调试问题。

常见报错

  1. sshd pam_succeed_if(sshd:auth): requirement “uid >= 1000” not met by user “root”

sudo的时候,需要密码,报错如下: Failed password for root from 10.0.0.41 port 58615 ssh2


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 极客油画 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image