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 256/week @ 2024-04-22 217/week @ 2024-04-29 353/week @ 2024-05-06 437/week @ 2024-05-13 241/week @ 2024-05-20 309/week @ 2024-05-27 350/week @ 2024-06-03 270/week @ 2024-06-10 317/week @ 2024-06-17 344/week @ 2024-06-24 184/week @ 2024-07-01 163/week @ 2024-07-08 224/week @ 2024-07-15 247/week @ 2024-07-22 226/week @ 2024-07-29 238/week @ 2024-08-05

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