8个版本 (3个稳定版)
1.2.0 | 2023年12月11日 |
---|---|
1.1.0 | 2022年5月25日 |
1.0.0 | 2020年3月29日 |
0.5.0 | 2020年3月17日 |
0.1.0 | 2020年2月6日 |
在Unix API中排名119
每月下载量137
在 2 crates中使用
32KB
436 行代码(不含注释)
posix-acl
posix-acl是一个用于与POSIX文件系统访问控制列表(ACL)交互的Rust库。它使用安全的Rust API包装了操作系统的C接口,API故意与POSIX C API不同,以便更容易使用。
仅支持Linux。FreeBSD支持似乎也是可行的,如有兴趣,请告知。macOS不支持POSIX ACL,不足以支持此库。
资源
使用示例
use posix_acl::{PosixACL, Qualifier, ACL_READ, ACL_WRITE};
fn main() {
// Read ACL from file (if there is no ACL yet, the OS will synthesize one)
let mut acl = PosixACL::read_acl("/tmp/posix-acl-testfile").unwrap();
// Get permissions of owning user of the file
let perm = acl.get(Qualifier::UserObj).unwrap();
assert_eq!(perm, ACL_READ | ACL_WRITE);
// Get permissions for user UID 1234
let perm = acl.get(Qualifier::User(1234));
assert!(perm.is_none());
// Grant read access to group GID 1234 (adds new entry or overwrites an existing entry)
acl.set(Qualifier::Group(1234), ACL_READ);
// Remove ACL entry of group GID 1234
acl.remove(Qualifier::Group(1234));
// Write ACL back to the file
acl.write_acl("/tmp/posix-acl-testfile").unwrap();
}
发布历史
1.2.0 (2023-12-11)
- 新增:
Qualifier
和ACLEntry
现在实现了Copy
和Clone
(#69, #70)
由 eax-ebx 贡献 - 新增:
Qualifier
和ACLEntry
现在实现了Eq
(除了PartialEq
)(#61) - 更改: 许多方法现在有
#[must_use]
注解 (#76) - 文档: 在许多函数中添加了单独的错误/panic部分 (#71)
- 文档: 添加了一个打印ACL的示例CLI应用程序 (#45)
- 构建: 声明最小支持的Rust版本(MSRV)为1.60 (#72, #74)
- 构建: 启用并修复了所有 Clippy 严格性 lint(#75,#63)
1.1.0 (2022-05-25)
- 添加了
ACLError::as_io_error()
方法以访问底层的std::io::Error
实例(#57) - 小修改:文档调整(#46)
- 小修改:修复 Clippy 警告(#47,#49)
- 小修改:CI/测试改进(#44,#58)
1.0.0 (2020-03-30)
-
API 变更: 现在使用
ACLError
结构化错误类型而不是SimpleError
(#39)I/O 调用的错误信息不再包含文件名。
-
PosixACL::new()
构造函数不再添加Mask
条目(#37)Mask
仅在 "非最小" ACL 中需要,并在必要时自动添加。 -
代码的重大重组(#35)
-
文档改进
0.5.0 (2020-03-17)
-
API 变更: 在接受路径的方法中(如
read_acl
等)现在使用AsRef<Path>
(#33)这意味着在将这些方法传递给路径时不再需要或允许使用
.as_ref()
。 -
添加了将转换到/从原始
acl_t
指针的方法into_raw
和from_raw
(#21)。感谢 @aidanhs! -
文档调整和代码清理
0.4.0 (2020-03-10)
此版本与 0.3.0 完全 API 兼容。
- 文档大幅扩展(#27)
- 添加了
read_default_acl()
和write_default_acl()
以与目录的默认 ACL 交互(#18,#30)。感谢 @aidanhs! - PosixACL 结构现在实现了
Debug
特性(#24) - 改进了测试覆盖率和 CI 工作流程
0.3.0 (2020-02-20)
- 更新 'acl-sys' 和 'libc' 依赖(#14)
0.2.0 (2020-02-08)
- 为 PosixACL 添加等价特性(#7)
- 使用 GitHub Actions 和 Docker 进行 CI(#6)
- 添加 ACL remove() 方法
- 将 ACLEntry 字段公开,如预期
0.1.0 (2020-02-06)
- 初始发布
依赖项
~54KB