Crate pamsm[−][src]
Expand description
PAM Service Module wrappers
Usage
For example, here is a time based authentication module :
#[macro_use] extern crate pamsm; extern crate time; use pamsm::{PamServiceModule, Pam, PamFlag, PamError}; struct PamTime; impl PamServiceModule for PamTime { fn authenticate(pamh: Pam, _: PamFlag, args: Vec<String>) -> PamError { let hour = time::OffsetDateTime::now_utc().hour(); if hour != 4 { // Only allow authentication when it's 4 AM PamError::SUCCESS } else { PamError::AUTH_ERR } } } pam_module!(PamTime);
Macros
pam_module | Define entrypoints for the PAM module. |
Structs
Pam | Opaque PAM handle, with additional native methods available via |
Enums
PamError | |
PamFlag | |
PamMsgStyle |
Traits
PamData | Trait to implement for data stored with pam using |
PamLibExt | Extension trait over |
PamServiceModule | Default service module implementation. All default functions return SERVICE_ERR. You can override functions depending on what kind of module you implement. See the respective pam_sm_* man pages for documentation. |
Type Definitions
PamCleanupCb | Prototype of the callback used with |
PamResult |