Fact-checked by Grok 2 weeks ago

Pluggable Authentication Module

Pluggable Authentication Modules () is a flexible and modular framework for managing user , , and session handling in operating systems, providing a standardized that decouples these processes from individual applications. It allows system administrators to implement diverse methods—such as traditional passwords, , smart cards, or —through pluggable modules, enabling centralized configuration without requiring changes to application code. Originally developed in 1995 by Vipin Samar and Charlie Lai at , was standardized in 1997 via the Open Group's X/Open Service (XSSO) Pluggable Authentication Modules preliminary specification, and it has since become integral to systems like , , , and . PAM operates via a library that applications link against, which consults configuration files to invoke a stack of modules tailored to specific services like login, sudo, or SSH. These modules are organized into four core management groups: authentication (verifying user identity), account (checking account status and permissions), session (managing user sessions, such as resource limits), and password (updating credentials). Configuration typically occurs in files like /etc/pam.conf or directory-based setups in /etc/pam.d/, where control flags—such as required, requisite, sufficient, or optional—determine how modules interact in a stack, allowing for complex policies like requiring multiple factors for access. The architecture of PAM promotes security and maintainability by isolating authentication logic in shared libraries (often located in /lib/security or /usr/lib/pam), supporting over 40 standard modules for tasks like UNIX password verification (pam_unix), access control (pam_access), or time-based restrictions (pam_time). This modularity facilitates easy extension, auditing, and adaptation to emerging threats, such as integrating LDAP or for networked environments, while ensuring with legacy systems. Implementations vary slightly across distributions—Linux-PAM for most /Linux systems, OpenPAM for BSD variants—but all adhere to the core for interoperability.

Overview

Definition and Purpose

The (PAM) is a flexible framework designed for operating systems, serving as a to integrate diverse low-level schemes—such as password-based, token-based, or biometric methods—into a unified high-level application programming interface (). This allows applications to delegate tasks to PAM without embedding specific implementation details, thereby abstracting the complexity of security protocols from the software itself. The primary purpose of PAM is to enable system administrators to configure authentication behaviors dynamically for various services, supporting a range of methods including local password verification, remote authentication via protocols like or , and multi-factor approaches, all without requiring modifications to the applications. For instance, programs such as login, sshd, gdm, ftpd, and su rely on PAM to handle user verification, ensuring consistent security enforcement across the system. This decoupling promotes portability and adaptability, as PAM standardizes authentication processes for these services, reducing the risk of inconsistencies in security policies. Key benefits of PAM include centralized management of authentication policies through administrative controls, which simplifies oversight and compliance, and the ability to introduce new authentication mechanisms by simply adding modules, obviating the need to recompile or redeploy applications. Originally proposed by in an in October 1995, PAM has become a foundational component for secure access in modern environments.

History and Development

The Pluggable Authentication Modules (PAM) framework originated from a proposal by ' SunSoft division in OSF 86.0, published in October 1995 and titled "Unified Login with Pluggable Authentication Modules." Authored by Vipin Samar and Roland J. Schemers III, the document outlined an architecture to enable flexible, modular authentication for applications, initially as a private interface in 2.3 and adopted by (CDE) vendors for integrating graphical login tools like dtlogin with diverse authentication backends. This design decoupled authentication logic from applications, allowing administrators to configure multiple mechanisms without recompiling software. The first open-source implementation emerged with the Linux-PAM project, released alongside 3.0.4 in August 1996, providing a complete, community-driven PAM library for systems. Linux-PAM was primarily maintained by Andrew G. Morgan, with early support from engineer Michael K. Johnson, who helped recruit Morgan and integrate it into distributions. The framework drew influence from the unratified X/Open Service (XSSO) preliminary specification issued by The Open Group in 1997, which formalized the PAM but lacked full ratification, leading Linux-PAM to serve as the through its widespread implementation. By the late 1990s, PAM achieved broad adoption across major distributions, including early integration in 6.0 (1998) and 2.0 (1998), solidifying its role in authentication. Key variants emerged to address specific needs: OpenPAM, developed by Dag-Erling Smørgrav for the Project under the TrustedBSD initiative, was introduced in FreeBSD 4.0 in March 2000 as a BSD-licensed alternative emphasizing simplicity, correctness, and portability. Solaris PAM, building on Sun's original implementation, became a core component starting with 2.6 in 1997, evolving alongside Oracle's stewardship of the platform. In the 2010s, PAM evolved to integrate with contemporary systems, such as through the pam_systemd module, which registers user sessions with systemd-logind (part of , first released in 2010), enabling seamless management of user processes and . Security advancements continued with modules like pam_u2f from Yubico, initially released in December 2014 to support FIDO U2F hardware authenticators for two-factor authentication. As of 2025, PAM remains the foundational authentication standard in and BSD systems, with ongoing maintenance ensuring compatibility with emerging security protocols.

Architecture

Core Framework Components

The Pluggable Authentication Module (PAM) framework is built around the core libpam.so, which serves as the primary shared object providing a standardized for applications to interact with modules. This implements the essential functionality for handling tasks, enabling applications to remain independent of specific authentication mechanisms by delegating such processes to pluggable modules loaded dynamically at . The application-independent offered by libpam.so consists of a set of functions that allow programs to initiate and manage flows without embedding details. Key functions include pam_start(), which initializes a by associating an application with a service ; pam_authenticate(), which performs user ; pam_acct_mgmt(), which verifies validity and restrictions; pam_chauthtok(), which handles password changes; and pam_open_session() and pam_close_session() for session management. These functions support the four main PAM facilities—, management, password updating, and session handling—by abstracting the underlying interactions. On the module side, PAM defines a standardized service provider interface (SPI) that modules must implement to integrate with the framework. This interface includes functions such as pam_sm_authenticate() for module-specific logic, pam_sm_setcred() for , pam_sm_acct_mgmt() for account checks, pam_sm_chauthtok() for token changes, and pam_sm_open_session() and pam_sm_close_session() for session operations. Modules are implemented as dynamic shared libraries (typically with .so extensions) that the PAM library loads at runtime from designated directories, allowing for flexible extension without recompiling applications or the core library. The stacking mechanism is a foundational aspect of the , enabling the sequential or conditional execution of multiple modules for a given or . When an application invokes a function, the library processes a stack of modules in the order defined by , evaluating their values to determine overall success or failure, which supports layered policies across , account, session, and password . This runtime loading of shared libraries ensures that the framework remains adaptable to diverse system requirements.

Authentication Facilities

The Pluggable Authentication Modules () framework divides authentication tasks into four primary facilities—authentication, account management, password management, and session management—each handling distinct aspects of the user verification and access process. These facilities allow applications to delegate security-related operations to modular components, enabling flexible and centralized control over system authentication without modifying the applications themselves. The (auth) facility verifies the user's identity, typically through methods such as username and password prompts, biometric scans, or multi-factor tokens. It establishes the user's credentials, such as group memberships or Kerberos tickets, upon successful verification, ensuring that only legitimate users proceed to subsequent checks. The facility performs non-identity checks to determine if the authenticated is allowed , evaluating factors like account expiration, maximum concurrent logins, time-of-day restrictions, or limits. This step confirms the account's validity and the user's eligibility for the requested service, independent of the initial identity proof. The facility manages changes to authentication tokens, enforcing policies such as minimum length, complexity requirements, or reuse prohibitions during updates. It is invoked when credentials need modification, often in conjunction with the auth facility, to maintain secure password practices across the system. The session facility oversees the lifecycle of user sessions, performing setup tasks like mounting home directories or initializing logging upon login, and cleanup actions such as updating audit records or resource deallocation upon logout. This ensures consistent session handling, including accounting and environmental configuration, for all authenticated access. Each operates by invoking a of one or more modules in sequence, where the overall success or failure is determined by control flags associated with the modules, such as required (must succeed, with delayed failure reporting), sufficient (success short-circuits the if no prior failures), or optional (result ignored unless sole module). This modular stacking allows administrators to combine diverse mechanisms while maintaining a unified policy. In a typical authentication flow, the process proceeds sequentially: the auth facility first verifies , followed by the facility's eligibility check; if a password change is required, the password facility intervenes; finally, the session facility establishes the user environment. This ordered progression ensures comprehensive security validation before granting service access.

Modules

Types of PAM Modules

PAM modules are categorized primarily by the facilities they support, enabling a modular approach to handling different stages of user and . The four main types—authentication, account, password, and session—correspond to distinct management groups within the framework, allowing administrators to stack modules as needed for comprehensive . Some modules are versatile and can provide functionality for multiple facilities, facilitating complex configurations without redundancy. Authentication modules focus on verifying the identity of a attempting to a , typically by prompting for and validating credentials such as passwords, , or biometric . These modules establish whether the provided matches stored , often setting up initial credentials for the session if successful. For instance, they handle password checking to prevent unauthorized . Account modules manage the ongoing validity and permissions of accounts, performing checks to ensure the account remains active and compliant with policies at time. This includes verifying account expiration, maximum age, or restrictions based on factors like time of day or originating . These modules determine if the authenticated is granted beyond mere . Password modules oversee the updating and secure of authentication credentials, enforcing policies for changes such as minimum or requirements. They apply hashing algorithms to protect during modification and with backend stores, ensuring credentials evolve securely over time. These modules are invoked during change operations to maintain . Session modules govern the lifecycle of an authenticated session, executing setup and teardown actions such as activities, mounting directories, or initializing variables upon and logout. They support auditing and to track and limit session behavior, contributing to overall system accountability. For example, they may enable for or restrict session duration.

Common PAM Modules

The pam_unix module serves as the standard Unix authentication mechanism within the Pluggable Authentication Modules () framework, retrieving and verifying user credentials against traditional Unix files such as /etc/passwd for account information and /etc/shadow for password hashing and expiration details. It supports core PAM facilities including , account management, password updating, and session handling by leveraging system library calls to check credentials and enforce policies like password aging. The pam_ldap module enables authentication against (LDAP) directories, facilitating centralized user management across networked environments by querying remote servers for user credentials, group memberships, and access controls. This module integrates with PAM's authentication and account facilities to perform bind operations or password comparisons on LDAP entries, supporting features like password changes and host-based access restrictions defined in LDAP attributes. For network-based authentication, the pam_krb5 module provides integration with version 5, allowing applications to validate users via Kerberos tickets obtained from a (KDC) rather than local passwords. It handles PAM authentication by acquiring or renewing tickets, managing account validity through Kerberos principals, and supporting session establishment with ticket cache handling for seamless in distributed systems. To mitigate brute-force attacks, modules like pam_tally and its successor pam_faillock track failed login attempts per user over a configurable interval, enforcing temporary account lockouts after exceeding a denial threshold to prevent unauthorized access. The pam_faillock module, introduced as a more robust replacement in modern distributions, maintains per-user counters in a persistent database and integrates with PAM's authentication stack to deny further attempts until the lockout expires or is manually reset. Hardware-based authentication is supported by modules such as pam_u2f for Universal 2nd Factor (U2F) tokens and pam_fprintd for , enhancing security through multi-factor verification. The pam_u2f module performs challenge-response interactions with USB or security keys during PAM authentication, while pam_fprintd interfaces with the fprint daemon to scan and match biometric data against enrolled templates for passwordless or two-factor login flows. PAM modules can be tailored for specific services, such as those in the SSH daemon configuration, where service-specific stacks combine general modules like with protocol-aware controls. As of 2025, the module integrates deeply with by registering user sessions in the systemd-logind manager, enabling resource management, assignment, and runtime tracking for modern session handling.

Configuration

Configuration Files and Syntax

PAM configuration can be managed through two primary approaches: a legacy single-file system and a modern modular directory-based system. The traditional method uses the /etc/pam.conf file, which contains all rules in a unified format applicable across services. However, the preferred approach in contemporary -PAM implementations is the directory /etc/pam.d/, which organizes configurations into service-specific files, offering greater flexibility and maintainability by allowing overrides for individual applications without affecting the global setup. If the /etc/pam.d/ directory exists, it takes precedence over /etc/pam.conf, ensuring service-specific customizations are applied. The syntax for PAM configuration lines follows a consistent structure across both methods. In /etc/pam.conf, each rule is formatted as service type control module-path module-arguments, where the service specifies the application (e.g., sshd or other for defaults), type indicates the PAM facility (such as auth, account, password, or session), control defines the module's behavior (e.g., required), module-path points to the shared object file (often relative to /lib/security/), and module-arguments provide optional parameters. For files in /etc/pam.d/, the service is implied by the filename (e.g., /etc/pam.d/sshd for the SSH daemon), so lines use the simplified format type control module-path module-arguments. Tokens are separated by whitespace, comments begin with #, and multi-line entries can be continued using \<LF>. Note that while Linux-PAM uses "include" for directives, some distributions like Debian prefix it with "@" (e.g., @include). A representative example of a configuration line is:
auth required pam_unix.so nullok
This authenticates users via the standard Unix module, treating missing credentials as non-fatal (nullok argument). Arguments with embedded spaces must be enclosed in square brackets, such as [debug=1]. To promote reusability, PAM supports inclusion of shared configurations. The include directive incorporates all lines of a specified type from another file, for instance, include common-auth to pull in common authentication rules into a service file. Similarly, substack allows embedding a substack from a file, where success or failure outcomes are evaluated independently before resuming the main stack, aiding in modular rule organization. A default file named other in /etc/pam.d/ provides fallback rules for services without dedicated configurations.

Control Flags and Module Stacking

In Pluggable Authentication Modules (PAM), control flags dictate how the PAM library responds to the success or failure of individual modules within a stack, influencing whether the authentication process continues, terminates early, or aggregates results for the overall decision. These flags enable flexible policy enforcement by specifying the relative importance of each module's outcome without altering application code. The primary control flags are required, requisite, sufficient, and optional. A required module must ultimately succeed for the entire stack to succeed, but the PAM framework continues executing subsequent modules even if it fails, deferring the failure report until the end to allow all modules to run. In contrast, a requisite module must succeed immediately; failure causes the stack to terminate right away, returning the error to the application without processing further modules. The sufficient flag allows a module's success to grant overall authentication if no prior required or requisite modules have failed, skipping the rest of the stack; failure of a sufficient module is ignored, and execution proceeds. An optional module has no direct impact on the overall result unless it is the only module in the stack for that facility, in which case its outcome determines success or failure. Module stacking involves arranging PAM modules in a sequential order within files for each facility (such as auth, , , or session), where they are executed one after another. The overall success of the stack is computed by evaluating all modules' results according to their control flags: for instance, all required modules must succeed, no requisite modules can fail, and sufficient successes can short-circuit the process if conditions are met. This sequential evaluation ensures that critical checks (via required or requisite) are enforced while allowing optimizations like early success via sufficient flags. For example, if a sufficient module passes without prior failures, subsequent required modules are skipped, streamlining without compromising policy. Advanced implementations support extended control flag syntax, such as [success=ok failure=die], which maps specific module return codes to actions like die (immediate termination on failure, akin to requisite but customizable) or done (early success similar to sufficient). Additionally, the debug argument can be appended to modules (e.g., pam_unix.so debug) to enable verbose for stack behavior without altering control logic.

Usage and Integration

Integration with System Services

PAM is integrated into core system services on operating systems to handle , , session setup, and updates in a standardized manner. For instance, the service utilizes PAM for console-based user , verifying credentials against configured modules before granting access to the . Similarly, the SSH daemon (sshd) employs PAM for remote , allowing secure remote access while supporting diverse backends like LDAP or through module stacking. The utility integrates PAM for , enabling controlled elevation of user privileges with auditing and policy enforcement during command execution. Graphical login managers, such as GDM (), rely on PAM to authenticate users at the entry point, ensuring seamless integration with display server protocols. Applications incorporate PAM by linking against the libpam library and invoking its functions, such as pam_start() to initialize a session for a specific , followed by pam_authenticate() and pam_acct_mgmt() for validation and checks. Configuration for each is defined in dedicated files under /etc/pam.d/, where module paths, control flags, and arguments dictate the flow; for example, sshd references /etc/pam.d/sshd to specify modules like pam_unix.so for local password verification. This modular linking allows services to remain unchanged when mechanisms evolve, as updates occur solely in the PAM and modules. Common modules, such as pam_unix for traditional Unix , are frequently stacked within these configurations to provide baseline functionality. PAM enjoys native support across major platforms: Linux distributions implement it via the Linux-PAM library, which provides the core framework for system-wide authentication; FreeBSD uses OpenPAM, an alternative implementation emphasizing simplicity and compatibility with BSD-specific services; and Oracle Solaris incorporates PAM as a built-in framework for securing system entry points like login and su. PAM can be integrated with container runtimes such as Docker, for example by mounting host PAM configurations into containers or using modules like pam_docker, enabling scenarios such as authentication of host users within containers or networked credential validation in isolated environments. Additionally, in systems using systemd as the init process, the pam_systemd module plays a crucial role post-authentication by registering user sessions with the systemd-logind service, creating per-user runtime directories under /run/user/, initializing environment variables, and managing session lifecycle within the control group hierarchy to facilitate resource tracking and process termination on logout.

Practical Examples

One common practical application of PAM is configuring basic Unix authentication for the login service. In the /etc/pam.d/login file, a simple stack might include lines such as auth requisite pam_unix.so to require standard Unix credential verification during the phase, ensuring that only valid local users can proceed, and account required pam_unix.so to validate status like expiration in the management phase. For enhancing security in remote access, can be implemented for SSH by stacking modules in /etc/pam.d/sshd. A typical combines password-based with one-time passwords, such as auth required pam_unix.so try_first_pass to require Unix , followed by auth required pam_google_authenticator.so to enforce additional via a time-based token from the app. Integrating directory services like LDAP allows centralized user management, often configured in files like /etc/pam.d/common-auth. An example stack uses auth sufficient pam_ldap.so to authenticate against an LDAP server if credentials match, with a fallback to local Unix checks via auth required pam_unix.so for cases where LDAP is unavailable or the user is local-only. To verify PAM configurations without risking system access, the pamtester utility simulates authentication flows for a specified and user. For instance, running pamtester login username authenticate tests the stack interactively, revealing errors in module interactions. A frequent pitfall in module stacking is creating loop conditions, such as when a module indirectly invokes the same PAM it is part of, leading to infinite ; this can be avoided by ensuring modules do not trigger recursive calls to their own .

Security Considerations

Security Advantages

The modularity of Pluggable Authentication Modules (PAM) allows system administrators to implement layered authentication mechanisms, such as combining traditional password verification with one-time passwords (OTPs) for multi-factor authentication, without requiring modifications to individual applications. This flexibility stems from PAM's architecture, which stacks multiple modules to enforce sequential or conditional checks during authentication, session management, and password updates, thereby enhancing security by distributing trust across diverse methods. For instance, modules like pam_google_authenticator can integrate TOTP-based OTPs alongside password prompts, providing defense-in-depth without altering service code. PAM's centralized policy enforcement ensures uniform application of security rules, such as complexity requirements and account lockouts, across all services that utilize the , reducing inconsistencies that could arise from disparate implementations. This is achieved through standardized files in /etc/pam.d/, where policies like failed login thresholds are defined once and applied system-wide, simplifying administration and bolstering overall resilience against brute-force attacks. Modules such as pam_faillock exemplify this by tracking failures and enforcing temporary lockouts uniformly for services like SSH and . Furthermore, PAM supports integration of advanced authentication methods, including and security keys, extending its utility to phishing-resistant and contactless verification. For , the pam_fprintd module leverages libfprint to enable fingerprint-based , allowing seamless incorporation of into the authentication stack. tokens like are supported via pam_u2f, which implements U2F and FIDO2 protocols for second-factor or , requiring user verification such as PIN or touch. As of 2025, in modern Linux distributions like and incorporates FIDO2/ support through these modules, enabling phishing-resistant with resident keys stored on compatible .

Vulnerabilities and Best Practices

One common in PAM configurations arises from improper use of flags, such as the "optional" flag, which can allow to succeed even if a critical fails, potentially enabling unauthorized . Complex stacking in can introduce logic errors, where the order or interaction of modules leads to unintended bypasses or failures in enforcement. Historical CVEs illustrate -specific risks; for instance, CVE-2009-1384 in the pam_krb5 allowed remote attackers to enumerate valid usernames via different password prompts depending on whether the user account exists, exploiting improper handling of credentials. More recently, CVE-2025-8941 in the pam_namespace enables local through symlink attacks and conditions on user-controlled paths, affecting versions of Linux-PAM prior to patches released in November 2025, such as those in distribution updates. To mitigate these risks, administrators should employ strict control flags like "requisite" for essential modules, ensuring immediate failure if they do not succeed and halting further processing. Configurations should be audited using tools such as pamtester, which simulates authentication scenarios to verify stack behavior without risking live systems. Debugging should be enabled only temporarily and in controlled environments, as it may expose sensitive information in logs. Regular updates to PAM modules are crucial; for example, Linux-PAM 1.5.3, released in 2023, introduced new configuration options and minor bug fixes. As of 2025, integrating mandatory access control systems like SELinux or AppArmor to confine PAM-related processes is recommended to limit the impact of exploits, even if authentication succeeds.

Criticisms and Limitations

Key Criticisms

One major criticism of PAM is its inherent , particularly in and stacking. The framework's reliance on intricate files and sequential ordering creates a steep for administrators, often described as requiring "PhD-level" expertise due to variations across implementations and the potential for subtle misconfigurations to cause widespread failures. This error-prone nature is exacerbated by the PAM conversation mechanism, which unnecessarily doubles the complexity of application interfaces, making challenging for event-driven services like SSH. PAM also faces limitations in supporting advanced authentication protocols, notably poor native integration with full (SSO) and environments. The pam_krb5 module, while enabling basic password checking, lacks direct support for fetching service tickets and was explicitly not designed for network services that accept tickets as authentication input, often requiring additional wrappers like SPNEGO or SASL to achieve comprehensive SSO functionality. The original 1995 design of is widely regarded as outdated, struggling to adapt to contemporary paradigms such as zero-trust models that demand continuous verification and fine-grained controls beyond PAM's text-based, sequential interaction model. Furthermore, it lacks built-in or for interactions between modules and applications, relying on shared address spaces that introduce risks like memory corruption and namespace collisions. In the 2000s, PAM drew criticism for failing to fully align with emerging X/Open standards, particularly the 1997 X/Open Single Sign-on (XSSO) specification intended to standardize the API and enable SSO extensions; incompatible variations across implementations undermined portability and consistency. As of 2025, PAM remains dominant in traditional Linux systems and is still used for local authentication in cloud environments, though ephemeral containers and microservices often prioritize token-based and API-driven authentication. Despite these criticisms, PAM continues to be actively maintained, with recent security updates addressing vulnerabilities.

Alternatives to PAM

The System Security Services Daemon (SSSD) serves as an extension to , enhancing in enterprise environments by providing access to remote directories and authentication providers, such as (AD). SSSD integrates directly with AD using ID mapping or attributes, offering a scalable to traditional tools like or Winbind for systems in domain-joined setups. This makes SSSD particularly suitable for organizations requiring centralized authentication across distributed networks, where PAM alone may lack robust remote caching and failover capabilities. Polkit, also known as PolicyKit, functions as an framework that complements by handling fine-grained for privileged operations, rather than serving as a direct replacement for . It enables unprivileged applications to request actions from system services, using for underlying when needed, such as in desktop environments for tasks like mounting drives or configuring hardware. 's policy-based rules allow administrators to define who can perform specific actions without altering core authentication stacks, making it a lightweight addition for systems emphasizing separation of and . For modern web-based and API-driven applications, particularly in containerized and architectures, OAuth 2.0 and Connect (OIDC) provide decentralized authentication mechanisms that often bypass traditional entirely. These protocols enable token-based authorization for inter-service communication, supporting single sign-on (SSO) across distributed components without relying on local system modules like . In environments such as clusters, OAuth/OIDC integrate with identity providers like or cloud services, offering scalability for API security that PAM's local focus cannot match. In environments, such as AWS, is used for local on EC2 instances, such as SSH logins, and is frequently augmented by services like roles for dynamic credential management and access. Similarly, FreeBSD's OpenPAM offers a lighter, BSD-licensed variant of the PAM standard, emphasizing simplicity and correctness with a focus on core tasks, avoiding the broader feature set of Linux-PAM. Alternatives to PAM are typically employed in distributed systems where local, host-centric proves insufficient, such as in multi-cloud setups or service meshes requiring without centralized trust anchors. For instance, SSSD or /OIDC excel in scenarios involving remote user provisioning and gateways, reducing reliance on PAM's module-stacking for scalability across heterogeneous infrastructures.

References

  1. [1]
    Chapter 18. Pluggable Authentication Modules (PAM) - NetBSD
    This article describes the underlying principles and mechanisms of the Pluggable Authentication Modules (PAM) library, and explains how to configure PAM, ...
  2. [2]
    Chapter 3. Overview
    ### Summary of Linux-PAM Overview
  3. [3]
  4. [4]
  5. [5]
    An introduction to Pluggable Authentication Modules (PAM) in Linux
    Jul 22, 2020 · Pluggable Authentication Modules (PAM) have been around since 1997. I was taught that PAM originated from Sun's Solaris, and it does appear ...Missing: history | Show results with:history
  6. [6]
    PAM(8) - Linux manual page - man7.org
    This manual is intended to offer a quick introduction to Linux-PAM. For more information the reader is directed to the Linux-PAM system administrators' guide.
  7. [7]
    Pluggable Authentication Modules for Linux - Linux Journal
    Dec 1, 1997 · Specifically, it is OSF-RFC 86.0, October 1995, “Unified Login with Pluggable Authentication Modules (PAM)”. The Linux-PAM URL at the end of ...
  8. [8]
    RFC NNN - The Open Group
    In this RFC we discuss the architecture and design of pluggable authentication modules. This design gives the capability to use field-replaceable ...
  9. [9]
    Pluggable Authentication Modules - Frontmatter
    OSF RFC 86.0. October 1995, Unified Login with Pluggable Authentication Modules (PAM). PAM Manual: Sun Microsystems Inc., PAM Reference Manual Pages. ... Internet ...
  10. [10]
    OpenPAM - TrustedBSD
    OpenPAM is a BSD-licensed Pluggable Authentication Modules implementation now used in FreeBSD and NetBSD, and produced as part of the TrustedBSD Project.
  11. [11]
    Release Notes - Yubico Developers
    Hardened checks of authfile permissions. Hardened checks for nouserok. Improved debug messages. Improved documentation. Version 1.3.0 (released 2023- ...
  12. [12]
    PAM(8) - Linux manual page - man7.org
    This manual is intended to offer a quick introduction to Linux-PAM. For more information the reader is directed to the Linux-PAM system administrators' guide.
  13. [13]
    Chapter 17 Using PAM - Oracle Help Center
    This chapter covers the Pluggable Authentication Module (PAM) framework. PAM provides a method to “plug in” authentication services into the Solaris Operating ...Missing: core components
  14. [14]
    1.20. Interface Definitions for libpam
    1.20. Interface Definitions for libpam ; pam_acct_mgmt -- establish the status of a user's account ; pam_authenticate -- authenticate the user ; pam_chauthtok -- ...<|control11|><|separator|>
  15. [15]
    How PAM Stacking Works
    How PAM Stacking Works. When an application calls on the following functions, libpam reads the configuration file /etc/pam.conf to determine which modules ...
  16. [16]
    Pluggable Authentication Modules | FreeBSD Documentation Portal
    The Pluggable Authentication Modules (PAM) library is a generalized API for authentication-related services which allows a system administrator to add new ...Missing: Red Hat
  17. [17]
    2.2. PAM Configuration Files | Red Hat Enterprise Linux | 6
    Module interface directives can be stacked, or placed upon one another, so that multiple modules are used together for one purpose. If a module's control flag ...
  18. [18]
    PAM Module Types (System Administration Guide: Security Services)
    Here are the four types of run-time PAM modules: The authentication modules provide authentication for the users. The modules also allow for credentials to ...
  19. [19]
    Pluggable Authentication Modules - IBM
    PAM modules allow multiple authentication mechanisms to be used collectively or independently on a system. PAM configuration file. The /etc/pam.conf ...
  20. [20]
    Anatomy of a Linux Pluggable Authentication Modules (PAM ...
    Jul 29, 2020 · In this article, we will walk through the configuration files for a local sudo command. When using sudo, we switch users and do something.Missing: RFC 86.0 Sun Microsystems Desktop<|separator|>
  21. [21]
    pam_echo(8) - Linux man page - Die.net
    The pam_echo PAM module is for printing text messages to inform user about special things. Sequences starting with the % character are interpreted in the ...
  22. [22]
    pam_limits(8): PAM module to limit resources - Linux man page
    The pam_limits PAM module sets limits on the system resources that can be obtained in a user-session. Users of uid=0 are affected by this limits, too.Description · Options · Return Values<|control11|><|separator|>
  23. [23]
    pam_unix(8) - Linux manual page - man7.org
    This is the standard Unix authentication module. It uses standard calls from the system's libraries to retrieve and set account information as well as ...
  24. [24]
    pam_unix(8) - Linux man page
    pam_unix is a standard Unix authentication module that retrieves and sets account information and checks user credentials (password).
  25. [25]
    PADL/pam_ldap - GitHub
    The pam_ldap module provides the means for Solaris and Linux servers and workstations to authenticate against LDAP directories, and to change their passwords ...
  26. [26]
    pam_ldap(8) - Arch manual pages
    This is a PAM module that uses an LDAP server to verify user access rights and credentials. OPTIONS. use_first_pass: Specifies that the PAM module should use ...
  27. [27]
    19.4. Kerberos and PAM | Reference Guide | Red Hat Enterprise Linux
    Applications that use PAM can make use of Kerberos for authentication if the pam_krb5 module (provided in the pam_krb5 package) is installed.
  28. [28]
    pam_krb5 - Kerberos PAM module - Ubuntu Manpage
    The Kerberos service module for PAM, typically installed at /lib/security/pam_krb5.so, provides functionality for the four PAM operations: authentication, ...
  29. [29]
    What is pam_faillock and how to use it in Red Hat Enterprise Linux 8 ...
    Jul 23, 2025 · How can I exclude users from getting locked out by pam_faillock after multiple unsuccessful login attempts? What can I use instead of pam_tally2 ...
  30. [30]
    pam_faillock - Module counting authentication failures during a ...
    This module maintains a list of failed authentication attempts per user during a specified interval and locks the account in case there were more than deny ...Missing: pam_tally | Show results with:pam_tally
  31. [31]
    pam-u2f - Yubico Developers
    This module implements PAM over U2F and FIDO2, providing an easy way to integrate the YubiKey (or other U2F/FIDO2 compliant authenticators) into your existing ...Missing: evolution 2010s
  32. [32]
    Setting Up Fingerprint Authentication On Linux Using PAM
    Nov 28, 2022 · Here's how you can set up your fingerprint scanner on Linux using PAM (Pluggable Authentication Modules).Missing: pam_u2f pam_fprintd hardware
  33. [33]
    pam_systemd(8) - Linux manual page - man7.org
    pam_systemd registers user sessions with the systemd login manager systemd-logind.service(8), and hence the systemd control group hierarchy.Missing: integration | Show results with:integration
  34. [34]
    pam.conf(5) - Linux manual page - man7.org
    These files list the PAMs that will do the authentication tasks required by this service, and the appropriate behavior of the PAM-API in the event that ...
  35. [35]
    pam.d(5): PAM config files - Linux man page
    The syntax of the /etc/pam.conf configuration file is as follows. The file is made up of a list of rules, each rule is typically placed on a single line, but ...
  36. [36]
    16.3.2. Control Flag | Reference Guide | Red Hat Enterprise Linux | 4
    Control flags tell PAM what do with the result. Since modules can be stacked in a particular order, control flags decide how important the success or failure of ...
  37. [37]
    Authentication with PAM | SLES 15 SP7 - SUSE Documentation
    Linux uses PAM (pluggable authentication modules) in the authentication process as a layer that mediates between user and application. PAM modules are ...
  38. [38]
    PAM (Overview) - Oracle Solaris Administration: Security Services
    PAM is a framework that lets you plug in new authentication services, providing a uniform way for authentication activities.Missing: history | Show results with:history
  39. [39]
    PAM Authentication Example — Using Driverless AI 1.10.7.5 ...
    Jul 1, 2025 · In this example, the host Linux system has PAM enabled for authentication and Docker running on that Linux system. The goal is to enable PAM ...<|separator|>
  40. [40]
    pam_systemd
    ### Summary of pam_systemd Module
  41. [41]
    Configure SSH to use two-factor authentication - Ubuntu
    Configuring SSH. To make SSH use the Google Authenticator PAM module, add the following line to the /etc/pam.d/sshd file: auth required pam_google_authenticator ...
  42. [42]
    Setting up multi-factor authentication on Linux systems - Red Hat
    Aug 11, 2020 · In this article, we use the Google PAM module to enable MFA so users can log in by using time-based one-time password (TOTP) codes.
  43. [43]
    2. LDAP authentication using pam_ldap and nss_ldap
    In our case, the pam_ldap module, implemented in the shared library pam_ldap.so, allows user and group authentication using an LDAP service. Each service that ...
  44. [44]
    pamtester - test pluggable authentication modules (PAM) facility
    pamtester is a tiny utility program to test the pluggable authentication modules (PAM) facility, which is a de facto standard of unified authentication ...
  45. [45]
    Linux PAM (Pluggable Authentication Modules for Linux) project
    The script is targeted at Debian based Linux distributions so the package names and availability might differ on other distributions.
  46. [46]
    About PAM - Managing Kerberos and Other Authentication Services ...
    PAM provides a framework for applications to perform various authentication functions. It provides central authentication, session management, password ...<|separator|>
  47. [47]
    pam_faillock(8) - Linux man page - Die.net
    This module maintains a list of failed authentication attempts per user during a specified interval and locks the account in case there were more than deny ...
  48. [48]
    Fingerprint reader support
    It also includes a PAM module to implement user login ( pam_fprintd replacing the obsolete pam_fprint module), and small command-line utilities if your desktop ...
  49. [49]
    Understanding FIDO2 Authentication Across Different Operating ...
    FIDO2, developed by the FIDO (Fast IDentity Online) Alliance, provides a robust framework for passwordless and phishing-resistant authentication. This ...
  50. [50]
    FIDO2 security key sign-in on Linux | by Jonas Markström | Medium
    Mar 5, 2025 · This guide walks you through securing Linux logins and privilege escalation with security keys as device-bound passkeys, delivering phishing resistance and a ...Missing: WebAuthn | Show results with:WebAuthn<|separator|>
  51. [51]
    PAM Control Flags (System Administration Guide: Security Services)
    To determine the continuation or failure behavior from a module, you must select a control flag for each entry in the PAM configuration file, /etc/pam.conf .
  52. [52]
    PAM authentication modules - Rocky Linux Documentation
    A misconfigured instance of PAM can compromise the security of your whole system. If PAM is vulnerable, then the whole system is vulnerable. Make any changes ...Missing: bypass | Show results with:bypass
  53. [53]
    CVE-2025-8941 Detail - NVD
    Aug 13, 2025 · The pam_namespace module may improperly handle user-controlled paths, allowing local users to exploit symlink attacks and race conditions to ...
  54. [54]
  55. [55]
    All that's wrong with PAM - Cryptonector
    Feb 10, 2012 · PAM is out of date, with text-based interaction, limited remote authentication, and complex sequencing issues, needing a complete overhaul.
  56. [56]
    Problems with PAM (Pluggable Authentication Modules)
    This is a big drawback for event-driven applications (such as sshd ): if an event requires a call to PAM, this call will block until the PAM interaction is ...<|control11|><|separator|>
  57. [57]
    6 Network Authentication with Kerberos - SUSE Documentation
    The pam_krb5 module was specifically not designed for network services that accept Kerberos tickets as part of user authentication. This is an entirely ...Missing: fetching | Show results with:fetching
  58. [58]
    pam_krb5(8): Kerberos 5 authentication - Linux man page - Die.net
    The pam_krb5.so module is designed to allow smooth integration of Kerberos 5 password-checking for applications which use PAM.
  59. [59]
    Chapter 1. Connecting RHEL systems directly to AD using SSSD
    You can integrate directly with AD by using either POSIX ID mapping, which is the default for SSSD, or by using POSIX attributes defined in AD.
  60. [60]
    Chapter 2. Using Active Directory as an Identity Provider for SSSD
    When used as an identity management service for AD integration, SSSD is an alternative to services such as NIS or Winbind. This chapter describes how SSSD works ...
  61. [61]
    SSSD - System Security Services Daemon - sssd.io
    Open Source Client for Enterprise Identity Management. Enroll your Linux machine into an Active Directory, FreeIPA or LDAP domain.
  62. [62]
    polkit Reference Manual - Freedesktop.org
    polkit provides an authorization API intended to be used by privileged programs (“MECHANISMS”) offering service to unprivileged programs (“SUBJECTS”)
  63. [63]
    Chapter 5. Controlling access to smart cards by using polkit | 9
    The polkit authorization manager can grant access to privileged operations. In addition to granting access to disks, you can use polkit also to specify policies ...
  64. [64]
    Polkit - ArchWiki
    Oct 25, 2025 · Polkit is used for controlling system-wide privileges. It provides an organized way for non-privileged processes to communicate with privileged ones.Missing: complement | Show results with:complement
  65. [65]
    Securing .NET Microservices and Web Applications - Microsoft Learn
    Feb 28, 2023 · To enable token authentication, ASP.NET Core supports several options for using OAuth 2.0 and OpenID Connect. Authenticate with an OpenID ...
  66. [66]
    OAuth2 and OpenID Connect for microservices and public ... - Adaltas
    Nov 20, 2020 · The OpenID Connect protocol enriches the OAuth protocol in multiple ways including the addition of an endpoint to retrieve user information.
  67. [67]
  68. [68]
    Implementing Privileged Access Management (PAM) In AWS Security
    Oct 18, 2024 · By combining AWS IAM with a dedicated PAM solution, organizations can enhance security by gaining deeper insights into privileged access ...Missing: wrapped | Show results with:wrapped
  69. [69]
    The Role Of IAM In Enhancing PAM For Cloud Environments.
    Jun 17, 2025 · IAM enhances PAM by enabling centralized identity governance, enforcing least privilege access, and providing scalable, policy-driven controls.Missing: wrapped agents
  70. [70]
    Part 1 of 4 - SSSD Linux Authentication: Introduction and Architecture
    Dec 6, 2017 · The key component to this solution is SSSD (System Security Service Daemon), which improves and extends problems that exist with PAM and NSS.
  71. [71]
    Securing APIs and Microservices with OAuth and OpenID Connect
    Nov 23, 2019 · Microservices present a new way of scaling API deployments, where each component is an island, performing a small but well defined task…