标准答案
- ACL 可以为特定用户或组提供比属主、属组、other 更细的访问规则,mask 还会限制命名用户和组的有效权限。
- SELinux 以安全上下文和策略判断访问,AppArmor 通常以程序路径和规则限制资源。
- 排查要查看拒绝日志、文件上下文或 profile,确认服务进程身份和实际访问路径,而不是盲目关闭安全机制。
- 修复应补充最小必要策略并验证恢复、轮转、临时目录和升级流程,避免用全局放开权限替代策略设计。
题目解析
DAC 权限由 owner、group 和 mode 等普通权限决定,SELinux 或 AppArmor 等强制访问控制还会根据进程、文件标签、路径和策略做额外判断。因此 chmod 成功并不代表访问一定允许;策略拒绝通常会在 audit 日志或内核日志中留下线索。
正确处理方式是先确认服务进程身份和访问动作,再查看拒绝记录、标签和 profile,编写最小策略或调整文件标签。临时放宽策略可以用于验证因果,但不能把禁用 SELinux/AppArmor 当作生产修复。
常见误区
- 误区:直接禁用 SELinux 或 AppArmor。改正:先从审计日志确认具体被拒绝的动作,再增加最小规则。
- 误区:只改 chmod 不看拒绝日志。改正:同时检查 DAC、文件标签、profile、挂载和服务运行身份。