#pam #api-wrapper #api-bindings #deserialize #command-line-utilities #libpam

pam-client

Pluggable Authentication Modules (PAM)的应用程序API包装器

8个版本 (4个破坏性版本)

0.5.0 2022年7月30日
0.4.0 2022年7月29日
0.3.1 2021年11月18日
0.3.0 2021年3月2日
0.1.2 2021年2月12日

#211 in 认证

Download history 563/week @ 2024-03-14 686/week @ 2024-03-21 829/week @ 2024-03-28 697/week @ 2024-04-04 508/week @ 2024-04-11 758/week @ 2024-04-18 549/week @ 2024-04-25 711/week @ 2024-05-02 895/week @ 2024-05-09 632/week @ 2024-05-16 570/week @ 2024-05-23 595/week @ 2024-05-30 483/week @ 2024-06-06 450/week @ 2024-06-13 657/week @ 2024-06-20 464/week @ 2024-06-27

2,135 每月下载量
2 crates 中使用

MPL-2.0 许可证

130KB
2.5K SLoC

pam-client - Rust风格的Pluggable Authentication Modules (PAM) API

Crates.io Documentation License Build Status Test Coverage

使用方法

  1. 将以下内容添加到您的Cargo.toml中
[dependencies]
pam-client = "0.5"
  1. 阅读crate文档

功能

pam-client crate提供了一个安全的API来访问PAM的应用程序接口部分。这包括

  • PAM认证、账户验证和会话管理
  • PAM密码更改
  • 三个示例对话处理器实现
  • 通过特质实现自定义对话处理器
  • 动态切换对话处理器
  • 可挂起的RAII会话处理
  • 刷新和重新初始化PAM凭据的方法
  • 支持PAM环境列表与std::process::Commandnix::unistd::execve的轻松集成
  • 所有标准和大多数Linux特定PAM项的获取器和设置器。
  • 对非标准PAM项的原始访问方法
  • 错误大多可转换为std::io::Error

特性

  • cli:默认包含命令行应用程序的对话处理器。如果不需要,请禁用此功能以删除对rpassword的依赖。
  • serde:启用此功能以获取错误、标志和令牌类型以及默认对话处理程序的序列化(反序列化)支持。此外,EnvList可序列化为[(OsStr, OsStr)]

支持的 Rust 版本

最低支持的 Rust 工具链版本是 Rust 1.46.0

目前测试到版本 1.64.0-nightly。

平台支持

pam-client 包目前只在 Linux 上进行测试,但已实现了对 Solaris 和基于 OpenPAM 的平台(如 NetBSD)的支持。

稳定性

此包遵循 语义版本控制,并额外承诺,在 1.0.0 以下,不会引入与向下不兼容的更改,仅更改补丁级别版本号。

与其他类似包的比较

此包为与 pam 相同的库提供安全的包装。此包旨在以略微复杂的接口为代价,为不同的用例提供安全的包装,而 pam 提供了一个更简单的接口,但限制了操作顺序,仅适用于最常见的用例。

许可证

许可协议为 Mozilla Public License,版本 2.0(LICENSEhttps://www.mozilla.org/en-US/MPL/2.0/)。

贡献

除非您明确表示,否则您提交的任何贡献,若有意包含在本作品中,应按上述方式许可,包括与次要许可证的兼容性,如 MPL 所定义。

依赖关系

~1.3–3.5MB
~76K SLoC