16 releases
Uses old Rust 2015
0.5.5 | Jun 28, 2024 |
---|---|
0.5.4 | Feb 9, 2024 |
0.5.3 | Sep 1, 2023 |
0.5.2 | May 2, 2022 |
0.1.0 | Jun 25, 2017 |
#147 in Authentication
765 downloads per month
Used in shavee_pam
31KB
550 lines
PAM SM
Rust FFI wrapper to implement PAM service modules for Linux.
Documentation - Cargo - Repository
Features
This crate supports the following optional features:
libpam
: this enables the extension traitPamLibExt
and linking againstlibpam.so
for its native implementation.
lib.rs
:
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, PamFlags, PamError};
struct PamTime;
impl PamServiceModule for PamTime {
fn authenticate(pamh: Pam, _: PamFlags, 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);
Dependencies
~105KB