c - Posix“访问”系统调用是否考虑了 ACL?
问题描述
根据手册页,POSIX 系统调用
int access(const char *pathname, int mode);
执行以下操作
access() 检查调用进程是否可以访问文件路径名。如果 pathname 是符号链接,则取消引用。
它是否还检查ACL或仅检查所有者/组/其他人的权利?
(假设 OS&FS 支持 ACL,并且文件上有 ACL)
具体来说,它是否检查 Linux 上的 ACL(在内核和 FS 中启用 ACL 时)?
解决方案
是的,access
应该考虑 ACL 和任何其他可能存在的机制。否则,这将access
毫无意义。例如,如果access
说读取文件可以,但由于 ACL 或其他原因而尝试读取失败,那将使其无用。
POSIX 的访问没有直接提及 ACL。但是有注释表明应该考虑可能存在的其他机制。
从 POSIX 的访问:
[..] 同样,如果系统提供任何不基于用户 ID 的附加或替代文件访问控制机制,它们仍将被考虑在内。
和
描述中定义的集合以外的 amode 的附加值可能是有效的;例如,如果系统具有扩展的访问控制。
推荐阅读
- angular - 仅使用下一个省略错误并在 Angular observable 中完成是否有意义?
- java - 在 Java 中解析 CACM 集合
- unity3d - Unet Non-Player 非服务器健康同步
- javascript - 溢出:隐藏在 iPad iOS 11 上不起作用
- ruby-on-rails - Rails 固定装置和命名空间模型 - ActiveRecord::Fixture::FixtureError
- angular - Angular 2+ 中的复杂和多种变换样式
- bash - tr 命令:| 的奇怪行为 和 \
- django - 提高 Django 登录安全性和密码强度
- python - 取消设置或关闭某些属性的当前模块
- c# - 无法让控制台日志记录在 .net core 2.0 中工作