Pluggable Authentication Module
Pluggable authentication modules (PAM) are a mechanism to integrate multiple low-level authentication schemes into a high-level application programming interface (API). It allows programs that rely on authentication to be written independent of the underlying authentication scheme. PAM was first proposed by Sun Microsystems in an Open Software Foundation Request for Comments (RFC) 86.0 dated October 1995. It was adopted as the authentication framework of the Common Desktop Environment. As a stand-alone open source infrastructure, PAM first appeared in Red Hat Linux 3.0.4 in August 1996. PAM is currently supported in the AIX operating system, DragonFly BSD, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD and Solaris. PAM was later standardized as part of the X/Open UNIX standardization process, resulting in the X/Open Single Sign-on (XSSO) standard.
The XSSO standard differs from both the original RFC, and from the Linux and Sun APIs — from most other implementations. Also, they are not implemented similarly. For these and other reasons, OpenBSD has chosen to adopt BSD Authentication, which is an alternative authentication framework, originally from BSD/OS.
Read more about Pluggable Authentication Module: Criticisms of PAM