You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于*nix系统POSIX文件权限校验机制的技术问询

*nix系统POSIX文件权限校验机制解答

权限校验的完整逻辑

你梳理的基础校验流程框架是对的,补充完整的第三步逻辑:

  • 当进程euid不是0且不等于文件uid时,会先检查进程的egid(有效组ID)是否等于文件的gid,如果匹配则使用group类权限位;
  • 若egid不匹配,再检查文件的gid是否存在于进程的补充组列表中,只要有任一匹配就使用group类权限位;
  • 以上都不匹配时,才会使用other类权限位。

关于(r|e|s)gid的存在意义

这三类gid各自承担不同的身份管理职责,并非和权限校验完全无关:

  • 真实gid(rgid):是进程创建时从父进程继承的“原生”组身份,主要用于审计、身份溯源(比如记录进程实际属于哪个组发起),以及在调用setgroups()、initgroups()等修改组列表的系统调用时做权限校验(只有root或rgid对应的用户才能修改自身补充组)。
  • 有效gid(egid):直接参与权限校验(就是上面第一步组匹配的检查项之一),同时决定进程创建新文件时默认的组归属(除非文件系统开启了grpid位)。当执行带有setgid位的程序时,进程的egid会被设置为该程序文件的gid,从而获得对应组的权限。
  • 保存的gid(sgid):用于保存进程原本的egid,当进程通过setregid()等调用临时切换egid后,还能通过sgid恢复到原来的有效组身份。比如setgid程序在完成需要特权的操作后,可以通过sgid降权回原来的组权限,保证安全性。

内容的提问来源于stack exchange,提问作者androkettle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:32:41