linux 中的 PAM 是什么

配置ftp认证的时候,需要用的 PAM 相关的知识,之前是简单的了解过,只知道和认证相关,可以判断的用户的密码对不对,其实这个 pam 的名字是 可以插入的认证模块 或者是 可以动态验证的模板, 比密码验证要强大的多 ,比如密码是否过期,账号是否被锁定...。

最重要的是认证系统和程序功能是相分离的,非常灵活,通过配置文件,就可以解决认证问题,同时不用修改程序

PAM 可以插入的认证模块

在linux中要执行一些特定的程序,比如进行认证,比如想登录系统。必须通过认证,这个认证的过程是通过PAM来完成的。

PAM 配置文件一般一行有四列,多行表示多个认证

四列的作用

  1. 模块的类型 (auth, account, session, passwd)
  2. 控制标记 (requird, requisite, sufficient, optional)
  3. 模块位置 不同的系统位置可能不同 (/usr/lib/x86_64-linux-gnu/security/)
  4. 模块的参数

模块的类型

  1. auth -- 最常见的密码认证,和权限分配
  2. account -- 账号的权限,合法性,是否过期
  3. session -- 会话控制
  4. password

控制标识

  1. required -- 全部通过验证返回成功,中间即使没有通过验证也不提示,全部通过才成功。
  2. requisite -- 遇到失败的验证规则,就返回失败,可以知道那个规则没通过验证。
  3. sufficient -- 有一个通过验证,就通过验证
  4. optonal -- 即使没有通过验证,也允许程序提供服务

模板位置 系统不同位置可能不同

ls /usr/lib/x86_64-linux-gnu/security/
pam_access.so     pam_keyinit.so    pam_permit.so      pam_tally2.so
pam_debug.so      pam_lastlog.so    pam_pwhistory.so   pam_tally.so
pam_deny.so       pam_limits.so     pam_rhosts.so      pam_time.so
pam_echo.so       pam_listfile.so   pam_rootok.so      pam_timestamp.so
pam_env.so        pam_localuser.so  pam_securetty.so   pam_tty_audit.so
pam_exec.so       pam_loginuid.so   pam_selinux.so     pam_umask.so
pam_faildelay.so  pam_mail.so       pam_sepermit.so    pam_unix.so
pam_filter.so     pam_mkhomedir.so  pam_shells.so      pam_userdb.so
pam_ftp.so        pam_motd.so       pam_stress.so      pam_warn.so
pam_group.so      pam_namespace.so  pam_succeed_if.so  pam_wheel.so
pam_issue.so      pam_nologin.so    pam_systemd.so     pam_xauth.so

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注