良许Linux教程网 干货合集 理清Linux中的各种用户ID关系

理清Linux中的各种用户ID关系

Linux系统是一种支持多用户和多任务的操作系统,它可以让不同的用户在同一台机器上进行不同的操作。但是,为了保证系统的安全和稳定,Linux系统需要对不同的用户进行权限管理,即控制用户可以访问和操作哪些文件和资源。为了实现这一目的,Linux系统中引入了各种用户ID的概念,例如实际用户ID、有效用户ID、保存的设置用户ID、文件系统用户ID等。本文将介绍Linux中的各种用户ID关系,包括用户ID的含义、作用、切换和查看等方面。

绿色代表进程(进程的性质)橙色代表文件(文件的性质)。当进程试图打开文件时,内核会进行如下权限测试:

img
img

\0. 若进程的有效用户ID是0(超级用户),则允许访问。

\1. 若进程的有效用户ID等于文件的所有者ID,那么进行文件所有者访问权限的测试(与open的参数对比),对应图中的1。

\2. 若进程的有效组ID或进程的附加组ID之一等于文件的组ID,则进行文件所属组的权限测试,对应图中的2.

\3. 测试文件的Other访问权限。

注:如果第1步中进程有效用户ID等于文件所有者ID,但相应权限的测试不符合,则不会进入第2步的组测试。对于2,3步也同理。

下面看一下一个用户执行进程的过程:

img
img

(1) 每个用户登录后都对应一个uid,一个gid,一组附加组id,如上图红色部分。

(2) 每个程序文件(黄色部分)和普通文件一样拥有文件所有者id,文件所有组id,并具有相应rwx权限。

(3) 用户打开文件时进行图1描述流程的x权限测试(只不过此时不是进程而是用户)。

(4) 当a.用户是超级用户或b.用户id和文件所有者id相同且文件所有者具有x权限或c.用户的gid和文件的所属组id相同且文件所属组具有x权限或d.文件的other具有x权限,则用户可执行此程序,产生进程(上图绿色部分)。

(5) 用户的uid变成进程的实际用户id,用户的gid变成进程的实际组id,用户的附加组id变成进程的附加组id。

(6) 当程序文件没有设置”设置用户id位(SUID)”和”设置组id(SGID)位”时进程的有效用户id等于进程的实际用户id,进程的有效组id等于进程的实际组id。

(7) 当程序文件设置了”设置用户id位(SUID)”时,进程的有效用户id保存到进程“保存的设置用户id”,之后进程的有效用户id变为程序文件的所有者id。

(8) 当程序文件设置了”设置组id(SGID)位”时,进程的有效用户组id保存到进程“保存的设置用户组id”,之后进程的有效用户组id变为程序文件的所有组id。

本文介绍了Linux中的各种用户ID关系,包括用户ID的含义、作用、切换和查看等方面。通过了解和掌握这些知识,我们可以更好地掌握Linux用户权限管理的核心知识,从而提高系统的安全性和可靠性。当然,Linux中的各种用户ID关系还有很多其他的特性和用法,需要我们不断地学习和研究。希望本文能给你带来一些启发和帮助。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部