/etc/pam.d/ 目录在 Linux 系统中用于存放可插拔认证模块(Pluggable Authentication Modules, PAM)的配置文件。PAM 提供了一种灵活的认证机制,允许系统管理员为不同的服务(如登录、密码更改、sudo 权限提升等)定制认证策略,而无需修改服务程序本身。这些配置文件定义了如何验证用户身份、授权用户访问特定服务以及为会话设置环境等。
/etc/pam.d/ 目录下的每个文件通常对应一个特定的服务或应用程序,文件名即为该服务或应用程序的名称。当某个服务需要认证用户时,它会查阅对应的 PAM 配置文件,并根据其中定义的规则进行用户认证和授权。
以下是一些常见的 /etc/pam.d/ 目录下文件的作用示例:
common-account:定义了账户管理相关的 PAM 规则,如密码过期检查、登录失败次数限制等。这个文件通常被其他服务的 PAM 配置文件通过 include 指令引用。
common-auth:定义了用户认证相关的 PAM 规则,如密码验证、多因素认证等。同样,这个文件也常被其他服务的 PAM 配置文件引用。
common-password:定义了密码更改相关的 PAM 规则,如密码复杂性检查、密码历史记录等。
common-session:定义了会话管理相关的 PAM 规则,如会话开始和结束时的操作、环境变量设置等。
sshd:专门用于 SSH 服务(Secure Shell)的 PAM 配置文件。它定义了 SSH 服务的用户认证和会话管理规则。
sudo:用于 sudo 命令的 PAM 配置文件,定义了用户通过 sudo 提升权限时的认证策略。
login:定义了本地登录(如通过控制台或图形界面登录)的 PAM 规则。
cron:为 cron 任务设置用户身份验证规则,确保只有授权用户可以提交和执行 cron 任务。
每个 PAM 配置文件都包含了一系列的 PAM 控制行,这些控制行指定了如何执行 PAM 模块(如 pam_unix.so、pam_ldap.so 等),以及如何处理这些模块的返回值。通过编辑这些配置文件,系统管理员可以微调系统的认证策略,以满足不同的安全需求。
请注意,具体的 PAM 配置文件和它们的作用可能会因 Linux 发行版的不同而有所差异。因此,在修改这些文件之前,最好先查阅你的 Linux 发行版的官方文档或手册。