ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux 中 uid、gid、euid、egid、groups 之间的关系 [打印本页]

作者: tsx81429    时间: 2024-7-1 18:34
标题: Linux 中 uid、gid、euid、egid、groups 之间的关系
导航

Linux最优秀的地方之一,就在于他的多人多工环境。而为了让各个使用者具有较保密的档案资料,因此档案的权限管理就变的很重要了。
Linux一样平常将档案可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有 read/write/execute 等权限。

故对于"静态"的档案来说,此中的权限属性即确定了“哪些身份的人拥有什么样的权限可以去操纵档案”,如上图所示。
而对于"动态"的进程来说,操纵系统又为进程分配了它们的用户身份,即有效用户身份euid、有效群组身份egid、群组身份groups、还有继承uid、继承gid。【注:不管进程是否有SUID/SGID加持,进程都将拥有这5个身份,只不过无差异时 id 命令默认不表现euid/egid而已,默认euid=uid、egid=gid】

(1)权限匹配流程
于是,当一个进程想要操纵某个档案文件时,操纵系统便会根据进程拥有的身份档案拥有的权限标志去做判定。判定流程如下(示例以读权限 r 举例):



(2)五种身份变革
当一个二进制命令被授予 SUID/SGID 特权时,命令进程中 5 种身份的变革。





(3)有效用户/组
不管实行2中进程的5种身份如何变革,当进程产生新档案时,档案的拥有者和所属群组都是以euid和egid的值去赋予的。


(4)特权对 Shell 脚本无效
特殊权限 SUID/SGID 对于 shell 脚本不起作用,授予和不授予的状态一样。


(5)Sudo 与 SUID/SGID 的优先级
当 Sudo 和 SUID/SGID 同时作用二进制命令时,优先以SUID/SGID的权限为主,这实在就相当于在root shell下执行特殊授权的命令一样,命令进程的5种身份仍旧按照末节(2)形貌的过程一样,root也不例外。


(6)SUID、SGID、Sticky 各自的功能。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4