IT评测·应用市场-qidao123.com技术社区

标题: Linux 特权 SUID/SGID 的详解 [打印本页]

作者: 美丽的神话    时间: 2024-7-2 12:31
标题: Linux 特权 SUID/SGID 的详解
导航

0、前言

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

故对于"静态"的档案来说,其中的权限属性即确定了“哪些身份的人拥有什么样的权限可以去做什么动作”,如上图所示。
而对于"动态"的历程来说,操作系统又为历程分配了它们的用户身份,即有效用户身份euid、有效群组身份egid、群组身份groups、还有继续uid、继续gid。【注:不管历程是否有SUID/SGID加持,历程都将拥有这5个身份,只不过无差异时 id 命令默认不显示euid/egid而已,默认euid=uid、egid=gid】
注:以下实验中涉及的 id、cat、touch 命令均是通过 cp $(which id) /tmp 从系统命令拷贝而来,通过对 id 命令赋予特权以观察同样被赋予特权的cat、touch 命令在此景象之下历程内部发生的变化,以及实际会产生什么样的效果。
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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4