●pam_access 将使用登录名/域名,根据 /etc/security/access.conf 中的预定义规则交付日志守护进程样式的登录访问控制. ●pam_cracklib 将根据密码规则检查密码. ●pam_env sets/unsets 环境变量来自 /etc/security/pam_env_conf. ●pam_debug 将调试 PAM. ●pam_deny 将拒绝 PAM 模块. ●pam_echo 将打印消息. ●pam_exec 将执行外部命令. ●pam_ftp 是匿名访问模块. ●pam_localuser 要求将用户列于 /etc/passwd 中.
拥有帝国一切,皆有可能。欢迎访问phome.net ●pam_unix 将通过 /etc/passwd 提供传统密码验证. 还有许多其他模块(pam_userdb、pam_warn、pam_xauth),这些模块将获取返回的一组值(这些模块的详细信息可以在 参考资料 的 PAM 管理指南中找到).
配置 PAM
PAM 配置通常是在 /etc/pam.d 或 /etc/pam.conf(用于旧版本)中的配置文件中实现的.
配置文件的结构
对于使用 PAM 的各项服务,目录中都有一个对应的文件,其中包含应当如何获取该服务的验证及帐户信息的规则或说明.通常每一行有一个规则.
PAM 配置文件中的字段包括:
●Service_name 将指定服务/应用程序的名称(默认值为 OTHER). ●Module_type 将为 Service_name 字段中的相应服务指定模块类型(auth/account/session/passwd). ●Control_flag 将指定模块的堆栈行为.它可以获取诸如 requisite、required、sufficient 和 optional 之类的值. ●Module_path 将指定实现模块的库对象的路径名称.默认情况下,它将被设为 /lib/security. ●Module_options/module_args(可选字段)将指定可以传递给服务模块的选项或实参. 模块将按照在配置文件中列出的顺序被调用,这取决于每个条目允许的 Control_flag 的值.Control_flag 值包括:
●Required:堆栈中的所有 Required 模块看作一个成功的结果.如果一个或多个 Required 模块失败,则实现堆栈中的所有 Required 模块,但是将返回第一个错误. ●Sufficient:如果标记为 sufficient 的模块成功并且先前没有 Required 或 sufficient 模块失败,则忽略堆栈中的所有其余模块并返回成功. ●Optional:如果堆栈中没有一个模块是 required 并且没有任何一个 sufficient 模块成功,则服务/应用程序至少要有一个 optional 模块成功.
PAM 配置文件示例
表 1 显示了各种操作系统中的 PAM 配置文件的一些示例.
表 1. PAM 配置文件的世界
系统 |
配置文件所在位置 |
类型 |
Control_flag |
模块 |
拥有帝国一切,皆有可能。欢迎访问phome.net
Red Hat |
/etc/pam.d |
auth |
required |
/lib/security/pam_unix.so |
Red Hat |
/etc/pam.d |
account |
sufficient |
/lib/security/pam_unix.so |
Red Hat |
/etc/pam.d |
session |
required |
/lib/security/pam_limit.so |
AIX |
/etc/pam.conf |
auth |
required |
/usr/lib/security/pam_aix |
AIX |
/etc/pam.conf |
account |
required |
/usr/lib/security/pam_aix |
AIX |
/etc/pam.conf |
password |
required |
/usr/lib/security/pam_aix |
zSUSE 64-bit | 32-bit |
/etc/pam.conf |
auth |
required |
/lib64/security/pam_unix.so | /lib/security/pam_unix.so |
zSUSE 64-bit | 32-bit |
/etc/pam.conf |
account |
required |
/lib64/security/pam_unix.so | /lib/security/pam_unix.so |
zSUSE 64-bit | 32-bit |
/etc/pam.conf |
session |
required |
/lib64/security/pam_unix.so | /lib/security/pam_unix.so |
Solaris |
/etc/pam.conf |
auth |
required |
/usr/lib/security/pam_unix.so.1 |
Solaris |
/etc/pam.conf |
account |
required |
/usr/lib/security/pam_unix.so.1 |
Solaris |
/etc/pam.conf |
password |
required |
/usr/lib/security/pam_unix.so.1 |
HP-UX |
/etc/pam.conf |
auth |
required |
libpam_unix.so.1 |
HP-UX |
/etc/pam.conf |
account |
required |
libpam_unix.so.1 |
HP-UX |
/etc/pam.conf |
password |
required |
libpam_unix.so.1 | |