PAM配置文件解析,配置文件优先级

/etc/pam.d/目录配置文件

1. 核心配置文件

(1) system-auth
  • 作用:系统默认认证策略,被其他服务(如 loginsshd)通过 include 引用。
  • 典型内容
    auth      required  pam_env.so
    auth      sufficient pam_unix.so try_first_pass
    account   required  pam_unix.so
    password  required  pam_unix.so sha512 shadow try_first_pass
    session   required  pam_unix.so
    
  • 修改影响:影响所有依赖它的服务(如本地登录、sudo)。
(2) password-auth
  • 作用:类似 system-auth,但通常用于远程登录(如 SSH)。
  • 区别
    • system-auth → 本地登录(如 logingdm
    • password-auth → 远程登录(如 sshd
(3) fingerprint-authsmartcard-auth
  • 作用:分别用于指纹认证和智能卡认证,通常通过 authselect 管理。

2. 服务专用文件

(1) sshd
  • 作用:SSH 服务的认证规则。
  • 关键模块
    auth      required  pam_sepermit.so
    auth      include   password-auth    # 引用 password-auth
    account   required  pam_nologin.so
    account   include   password-auth
    session   required  pam_selinux.so close
    session   include   password-auth
    
(2) sudosudo-i
  • 作用:控制 sudo 命令的认证。
  • 区别
    • sudo → 普通 sudo 操作
    • sudo-isudo -i(模拟 root 登录)
(3) login
  • 作用:控制本地终端登录(如 tty1)。
  • 关键模块
    auth      required  pam_securetty.so  # 限制 root 登录终端
    auth      include   system-auth       # 引用 system-auth
    
(4) susu-l
  • 作用:控制 su 命令的认证。
  • 区别
    • su → 普通用户切换
    • su-lsu -l(模拟登录环境)

3. 其他重要文件

(1) other
  • 作用:默认规则,匹配所有未明确配置的服务。
  • 安全建议:通常设置为拒绝所有操作:
    auth     required  pam_deny.so
    account  required  pam_deny.so
    password required  pam_deny.so
    session  required  pam_deny.so
    
(2) polkit-1
  • 作用:PolicyKit 的认证规则(如图形界面提权操作)。
(3) crond
  • 作用:控制 cron 任务的用户权限(如限制非 root 用户使用 cron)。
(4) passwd
  • 作用passwd 命令的密码修改策略。

4. PAM 模块类型与执行顺序

每个配置文件按以下顺序处理四类模块:

  1. auth

    • 验证用户身份(如密码、OTP)。
    • 示例模块:pam_unix.so(本地密码)、pam_ldap.so(LDAP 认证)。
  2. account

    • 检查账户状态(是否过期、是否允许登录)。
    • 示例模块:pam_time.so(限制登录时间)。
  3. password

    • 管理密码策略(如复杂度、历史记录)。
    • 示例模块:pam_pwquality.so(密码强度)。
  4. session

    • 控制会话环境(如日志记录、资源限制)。
    • 示例模块:pam_limits.so(ulimit 限制)。

5. /etc/pam.d//etc/authselect/优先级比较

在 RHEL/CentOS 8+ 系统中,当使用 authselect 管理 PAM 配置时,/etc/authselect/ 的配置优先级高于 /etc/pam.d/,具体规则如下:

(1) 如果使用 authselect
  • authselect 管理的配置(/etc/authselect/)优先级更高
  • /etc/pam.d/ 下的文件(如 system-auth)会变成符号链接,指向 authselect 的配置。
  • 手动修改 /etc/pam.d/ 下的文件可能无效,因为它们只是符号链接。
(2) 如果不使用 authselect
  • /etc/pam.d/ 下的文件是独立的,直接生效。
  • 手动修改会影响认证策略。
(3) 冲突时的优先级
  • authselect 管理的配置 > /etc/pam.d/ 独立文件
    • 如果 system-auth 是符号链接(指向 authselect 配置),则 authselect 的配置生效。
    • 如果 /etc/pam.d/sshd 是独立文件(非符号链接),则它覆盖 system-auth 中的相关配置。

你可能感兴趣的:(PAM,服务器,网络,数据库)