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 身份验证

Download history 3/week @ 2024-05-03 17/week @ 2024-05-10 38/week @ 2024-05-17 14/week @ 2024-05-24 30/week @ 2024-05-31 24/week @ 2024-06-07 14/week @ 2024-06-14 13/week @ 2024-06-21 286/week @ 2024-06-28 77/week @ 2024-07-05 19/week @ 2024-07-12 43/week @ 2024-07-19 199/week @ 2024-07-26 20/week @ 2024-08-02 8/week @ 2024-08-09 13/week @ 2024-08-16

每月243次下载
shavee_pam中使用

GPL-3.0许可

31KB
550

PAM SM

Crates.io version shield Crates.io license shield

Rust对Linux PAM服务模块的FFI封装

文档 - Cargo - 仓库

特性

此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