3个版本 (破坏性更新)

0.8.0 2023年11月1日
0.7.0 2019年2月7日
0.0.2 2015年3月6日
0.0.1 2015年3月6日

#74 in 认证

Download history • Rust 包仓库 256/week @ 2024-04-22 • Rust 包仓库 217/week @ 2024-04-29 • Rust 包仓库 353/week @ 2024-05-06 • Rust 包仓库 437/week @ 2024-05-13 • Rust 包仓库 241/week @ 2024-05-20 • Rust 包仓库 309/week @ 2024-05-27 • Rust 包仓库 350/week @ 2024-06-03 • Rust 包仓库 270/week @ 2024-06-10 • Rust 包仓库 317/week @ 2024-06-17 • Rust 包仓库 344/week @ 2024-06-24 • Rust 包仓库 184/week @ 2024-07-01 • Rust 包仓库 163/week @ 2024-07-08 • Rust 包仓库 224/week @ 2024-07-15 • Rust 包仓库 247/week @ 2024-07-22 • Rust 包仓库 226/week @ 2024-07-29 • Rust 包仓库 238/week @ 2024-08-05 • Rust 包仓库

956 每月下载量
用于 7 个crate(6直接使用)

MIT/Apache

46KB
773

pam - Linux可插拔认证模块(PAM)的安全Rust API

Crates.io Documentation Build Status License

注意:当前仅支持开箱即用的基本用户名/密码认证。

警告

通过env模块的环境支持可能已损坏,不应在当前状态下使用!

用法

  1. pam添加到您的Cargo.toml
[dependencies]
pam = "0.7.0"
  1. 使用Authenticator结构体进行认证并打开会话
extern crate pam;
pub fn main() {
        let service = "<yourapp>";
        let user = "<user>";
        let password = "<pass>";

        let mut auth = pam::Authenticator::with_password(service).unwrap();
        auth.handler_mut().set_credentials(user, password);
        if auth.authenticate().is_ok() && auth.open_session().is_ok() {
            println!("Successfully opened a session!");
        }
        else {
            println!("Authentication failed =/");
        }
}

待办事项

  • 实现基本用户/密码认证
  • 添加Authenticator结构体
  • 添加(更多)文档
  • 验证当前conv不泄露内存
  • 允许传递自定义的conv函数
  • 代码清理

支持的Rust版本

该库仅持续构建于Rust稳定版、beta版和nightly版,但由于它没有使用很多新的语言特性,它可能也能在旧版本上编译。如果您在旧版本上构建时遇到问题,并且可以应用一个小修复以使构建成功,请考虑提交一个pull请求。

稳定性说明

此crate遵循语义版本控制。因此,所有低于1.0.0的版本应被视为开发版本。这意味着API可能会随时更改。

许可

根据您选择以下之一许可

任选。

贡献

除非您明确说明,否则您有意提交给作品以包含在内的任何贡献,根据Apache-2.0许可定义,应按上述方式双许可,不得附加任何其他条款或条件。

依赖

~1.3–3.5MB
~74K SLoC