3个版本

0.0.3 2022年1月19日
0.0.2 2020年5月4日
0.0.1 2020年5月1日

16#pam 中排名

Download history 7467/week @ 2024-04-04 6239/week @ 2024-04-11 5876/week @ 2024-04-18 5775/week @ 2024-04-25 6268/week @ 2024-05-02 4981/week @ 2024-05-09 4626/week @ 2024-05-16 4560/week @ 2024-05-23 4718/week @ 2024-05-30 3995/week @ 2024-06-06 4733/week @ 2024-06-13 4878/week @ 2024-06-20 6237/week @ 2024-06-27 5836/week @ 2024-07-04 5470/week @ 2024-07-11 3152/week @ 2024-07-18

每月下载量 21,474
2 个crate中使用(通过 pam

MIT/Apache

5KB
90

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 request。

关于稳定性的说明

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

许可证

以下任一许可证下许可:

任您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在工作中的任何贡献,都应双许可如上所述,没有任何额外的条款或条件。

依赖项

~1.5MB
~35K SLoC