linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID

Posted 要知道,春天的道路依然充满泥泞!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID相关的知识,希望对你有一定的参考价值。

一、基本概念

实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid。

有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用户做任何一个操作时,最终看它有没有权限,都是在判断有效用户ID是否有权限。如果有,则ok,否则报错不能执行。在正常的情况下,一个用户登录之后(假设是A用户),A用户的有效用户ID和实际用户ID是相同的,但是如果A用户在某些场景中想要执行一些特权操作,能顺利的执行吗?上面说到了用户的任务操作,linux内核都是通过检验有效用户ID来判断当前执行这个操作的用户是否具有权限。这里的A用户想要执行的是特权操作,A用户没有这个权限,所以A用户就只能通过一定的手段来修改当前的有效用户ID使其具有执行特权操作的权限。

这里总结一句话:为什么要修改进程的有效用户ID,就是想在某一时刻能够执行一些特权操作。

设置用户ID位:用于对外的权限的开放,它的作用是修改进行的有效用户ID,给进程赋予临时的特权。

保存的设置用户ID:是有效用户ID副本,既然是有效用户ID的副本,那么它的作用肯定是为了以后恢复有效用户ID。

这里涉及很多的ID,通过下图看一下这些ID都是属于谁:

技术分享

技术分享

下面说一下文件设置用户ID位,这个ID仅仅是一个二进制的bit位,在文件stat结构的st_mode成员中,对于一般的文件,该位是置为无效的,只有可执行文件的该位是置为有效的。

二、改变三个用户ID的方法

下面这幅图给出了改变实际用户ID、有效用户ID和保存的设置用户ID的方法

技术分享

再来一幅图看一下文件的ID和进程的ID在权限访问上的对应关系。对于一个普通文件,有三个ID,这三个ID对应三组权限,这三组权限控制着进程对该文件的访问权限。

在注意一点:ID并不是一个int或者一个标识,他是一个操作系统用户的标号,该用户创建的所有的进程都是这个ID。

技术分享

对于linux系统,某个用户登录后,创建一个文件,那个这个文件的用户ID就是这个用户的ID。该用户创建的所有的进程都可以访问这个文件,因为该用户创建的进程的实际用户ID和有效用户ID都是这个用户的ID。但是当一个用户创建的进程要去访问其他用户创建的文件的时候,就需要用到有效用户ID的改变,来能够有权限访问这个文件。

 

以上是关于linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID的主要内容,如果未能解决你的问题,请参考以下文章

Linux 权限磁盘操作命令-Linux基础环境命令学习笔记

Windows运维的学习笔记

2023最新版360度无死角go学习路线

如何打造多路无死角的“迷宫”?

linux lamp学习笔记

Linux学习课程笔记