16个版本
使用旧的Rust 2015
0.5.5 | 2024年6月28日 |
---|---|
0.5.4 | 2024年2月9日 |
0.5.3 | 2023年9月1日 |
0.5.2 | 2022年5月2日 |
0.1.0 | 2017年6月25日 |
#138 in 身份验证
每月243次下载
在shavee_pam中使用
31KB
550 行
PAM SM
Rust对Linux PAM服务模块的FFI封装
特性
此crate支持以下可选特性
libpam
:这启用了扩展特性PamLibExt
并链接到libpam.so
以实现其原生实现。
lib.rs
:
PAM服务模块封装
使用方法
例如,这是一个基于时间的身份验证模块
#[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);
依赖项
~105KB