模块是PAM中非常核心的概念; 毕竟它们是“PAM”中的“M” 。 一个PAM模块是一个配置完整的程序代码段,它用来实现一个特别机制的一个或多个功能; 这些机制也许是实现认证功能的, 例如, 包含了UNIX® 密码数据库, NIS,LDAP和Radius.
17.4.2.1. 模块命名
FreeBSD和NetBSD用单独的模块实现每一种机制, 命名为 pam_mechanism.so (例如, pam_unix.so 是针对 UNIX® 机制的。) 其它的机制有时通过单独的模块实现单独的功能,并且在模块名内同时包含了功能名和机制名。 一个命名的例子, Solaris™ 有一个 pam_dial_auth.so.1 模块,它是用来认证拨号用户的。而且, 几乎所有的模块都有一个同名的用户手册, 换言之: pam_unix(8) 说明了 pam_unix.so 模块如何工作。
17.4.2.2. Module 版本
FreeBSD原有的PAM是基于Linux-PAM的, 没有为PAM模块使用版本号。与旧系统应用程序在一起通常会导致问题, 可能导致连接老版本的系统库, 因此无法为需要的模块导入匹配的版本库。
另一方面, OpenPAM寻找同PAM库有相同版本号的模块(当前在FreeBSD里是2,NetBSD里是0), 如果没有以标注版本号的模块可加载则只能退回到一个没有版本号的模块。因此旧系统的模块可以提供给旧系统的应用程序, 同时允许新(或者新构建的)应用程序享用最近的模块的优点。
尽管Solaris™ PAM 模块通常有版本号, 但它们并非真正以版本号命名的, 因为这个数字只是模块名的一部分并且必须列入配置里。
17.4.2.3. 模块路径
没有储存PAM模块的通用路径。在FreeBSD下, 它们在 /usr/lib , 而在NetBSD里, 你可以在 /usr/lib/security 发现它们.
《NetBSD指南-17.4.2.模块》
版主: lionux
在线用户
正浏览此版面之用户: Semrush [Bot] 和 0 访客