#pam #linux #wrapper #bindings #safe-wrapper #module

pam-auth

[已移动到 pam] PAM认证的Rust安全包装

21个版本

0.6.0 2019年2月7日
0.5.5 2018年7月4日
0.5.4 2018年3月21日
0.5.3 2017年12月4日
0.0.5-pre2015年3月29日

#425认证

Download history 31/week @ 2024-04-01 1/week @ 2024-05-20

每月下载 54次
5 个crate中使用 (直接使用2个)

MIT/Apache

8KB

[已移动到 pam]

pam-auth 已弃用,并更名为 pam。请使用新的crate进行任何未来的项目,并考虑如果仍然使用此crate,则进行切换。

pam-auth 版本 许可证 构建状态

Linux可插拔认证模块(PAM)的Rust安全绑定。目前仅支持基本的用户名/密码认证。

文档 @ docs.rs

警告

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

支持的Rust版本

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

关于稳定性的说明

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

用法

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

        let mut auth = pam_auth::Authenticator::new(service).unwrap();
        auth.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 函数(在 pam-sys 中?)
  • 代码清理

许可证

许可协议为以下之一

由您选择。

贡献

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交用于包含在作品中的任何贡献,都将按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖