4.5. PAM 和 NSS
现代的类 Unix 系统(例如 Debian 系统)提供 PAM (Pluggable Authentication Modules,插入式验证模块) 和 NSS(Name Service Switch,名称服务切换) 机制给本地系统管理员,使他们能够配置自己的系统。它们的功能可以概括为以下几点。
PAM 给应用软件提供了一个灵活的认证机制,因此涉及到了密码数据的交换。
NSS 提供了一个灵活的名称服务机制,它经常被 C 标准库使用,使例如 ls(1) 和 id(1) 这样的程序获得用户和组名称。
PAM 和 NSS 系统必须保持配置一致。
PAM 和 NSS 系统中重要的软件包如下。
表 4.5. PAM 和 NSS 系统中重要的软件包
软件包 | 流行度 | 大小 | 说明 |
---|---|---|---|
libpam-modules | V:842, I:999 | 1059 | 插入式验证模块(基础服务) |
libpam-ldap | V:1, I:14 | 244 | 允许 LDAP 接口的插入式验证模块 |
libpam-cracklib | I:16 | 116 | 启用 cracklib 支持的插入式验证模块 |
libpam-systemd | V:454, I:760 | 393 | 用于 logind 注册用户会话的插入式验证模块(PAM) |
libpam-doc | I:1 | 1031 | 插入式验证模块(html 和 文本文档) |
libc6 | V:937, I:999 | 12333 | GNU C 库:同样提供“名称服务切换”服务的共享库 |
glibc-doc | I:13 | 2995 | GNU C 库:帮助页面 |
glibc-doc-reference | I:5 | 13278 | GNU C 库:参考手册,有 info、pdf 和 html 格式(non-free) |
libnss-mdns | I:557 | 119 | 用于解析组播 DNS 名称的 NSS 模块 |
libnss-ldap | I:12 | 255 | NSS 模块,用于使用 LDAP 作为一个名称服务的 |
libnss-ldapd | I:19 | 152 | NSS 模块,用于使用 LDAP 作为一个名称服务的(libnss-ldap 的新 fork) |
libpam-doc
中 “The Linux-PAM System Administrators’ Guide” 是了解 PAM 配置的必要文档。glibc-doc-reference
中的 “System Databases and Name Service Switch” 是了解 NSS 配置的重要文档。
注意 | |
---|---|
你可以使用 “ |
注意 | |
---|---|
PAM 是为每个程序初始化环境变量为系统默认值的最基础方法。 |
在 systemd 下, libpam-systemd
软件包被安装用来管理用户登录,通过在 systemd
控制组层,为 logind 注册用户会话来实现。参见 systemd-logind(8), logind.conf(5), 和 pam_systemd(8).