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 认证
2,135 每月下载量
在 2 crates 中使用
130KB
2.5K SLoC
pam-client - Rust风格的Pluggable Authentication Modules (PAM) API
使用方法
- 将以下内容添加到您的Cargo.toml中
[dependencies]
pam-client = "0.5"
- 阅读crate文档
功能
pam-client
crate提供了一个安全的API来访问PAM的应用程序接口部分。这包括
- PAM认证、账户验证和会话管理
- PAM密码更改
- 三个示例对话处理器实现
- 通过特质实现自定义对话处理器
- 动态切换对话处理器
- 可挂起的RAII会话处理
- 刷新和重新初始化PAM凭据的方法
- 支持PAM环境列表与
std::process::Command
和nix::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(LICENSE 或 https://www.mozilla.org/en-US/MPL/2.0/)。
贡献
除非您明确表示,否则您提交的任何贡献,若有意包含在本作品中,应按上述方式许可,包括与次要许可证的兼容性,如 MPL 所定义。
依赖关系
~1.3–3.5MB
~76K SLoC