Real User ID 和 Effective User ID 的区别

在 Unix 和 Linux 系统中,每个进程都有多个用户标识符(UID),其中最重要的是“真实用户 ID”(real UID)和“有效用户 ID”(effective UID)。

它们的区别和用途如下:

真实用户 ID (Real User ID)  

  • 真实用户 ID (RUID) 是启动进程的用户的 ID。

  • 它标识了该进程的所有者,通常是执行进程的用户的 ID。

  • 真实用户 ID 不会随进程的执行改变,除非进程特意改变它。

  • 它用于访问控制和资源限制。例如,系统可以使用 RUID 来决定用户可以执行哪些操作。

有效用户 ID (Effective User ID)

  • 有效用户 ID (EUID) 是当前执行进程的用户 ID。

  • 它用于决定进程在访问文件或资源时的权限。

  • EUID 可以与 RUID 不同,特别是在使用 Set-UID 程序时。Set-UID 程序允许用户以文件所有者的权限运行程序,而不是以启动程序用户的权限运行。

  • 例如,如果一个文件的 Set-UID 位被设置,并且文件由 root 拥有,那么执行该文件的用户将暂时获得 root 的权限。此时,进程的 EUID 会被设置为 root,但 RUID 仍然是原来的用户 ID。    

区别和用途

  

  • RUID 决定了进程的所有者,通常用于系统审计和跟踪。

  • EUID 决定了进程在系统资源和文件访问上的权限,是操作系统用来决定权限检查的关键。

  • 在某些情况下(例如使用 Set-UID 程序),EUID 会被提升以提供更多权限,而 RUID 保持不变,这种机制允许临时提升权限而不改变进程的真实身份。

示例

假设有一个 Set-UID 程序 /usr/bin/setuid_program,它的所有者是 root,且设置了 Set-UID 位:

 

-rwsr-xr-x 1 root root 12345 Jan 1 00:00 /usr/bin/setuid_program

当用户 alice 执行这个程序时:

1.真实用户 ID (RUID)alice 的用户 ID。

2.有效用户 ID (EUID)root 的用户 ID,因为该程序设置了 Set-UID 位。

这样,虽然alice是启动程序的用户,但在执行setuid_program时,她拥有 root 的权限,可以执行一些通常需要 root 权限的操作。

总结

  • 真实用户 ID 标识了谁启动了该进程。    

  • 有效用户 ID 决定了进程的当前权限。

这两者的设计使得 Unix 和 Linux 系统能够灵活地管理权限,确保安全性与功能性的平衡。   

— Linux热门文章推荐 —

【资料领取】200个Linux常用命令手册

《鸟哥Linux私房菜》全新完整中文版PDF

40 个简单又有效的 Linux Shell 脚本示例

linux运维必备,100道常见面试题

超强linux学习笔记,值得一看(附PDF下载)

红帽认证有什么优势?速看本文

5 种 Linux 安装包管理工具中文手册!抓紧看!


END

微思网络,始于2002年

专业IT认证培训22年,面向全国招生!


微思-主要课程有:

*网络技术:华为HCIA/ HCIP/HCIE;思科CCNA/CCNP/CCIE

*Linux技术:红帽 RHCE/RHCA

*K8S&容器:CKA/CKS

*数据库:ORACLE OCP/ OCM ;MySQL ;达梦数据库

*虚拟化:VMware VCP/VCAP

*安全认证:CISP体系/CISSP/ CISA;CCSK;CISAW体系

*管理类:PMP 项目管理;软考中/高项;ITIL体系;Togaf

其他课程如:ACP;Azure...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

文章目录 Nethogs 网络监控程序详解1. 引言2. Nethogs 的安装与运行2.1 安装 Nethogs- **Debian/Ubuntu**- **Fedora**- **Arch Linux** 2.2 运行 Nethogs 3. Nethogs 的使用详解3.1 基本界面- **PID**:进程的 ID。- **用户**:运行该进程的用户。- **程序…

排序算法基础(未完待续)

4.1 排序 4.1.1 选择排序 4.1.2 插入排序 4.1.3 排序与sort函数的应用 sort函数参数 sort(首元素地址,尾元素的下一个元素的地址,比较函数(cmp,非必填))如果不写比较函数,那默认对给定区间进行递增排序 如何实现比较函数 从基本数据类型、结构体类型、STL容器进行自定排…

注意力机制篇 | YOLOv8改进之在C2f模块引入Global Context注意力模块 | 全局上下文注意力机制

前言:Hello大家好,我是小哥谈。GCNet(Global Context Network)是由XV Jiарui开发的一个开源项目,它旨在通过全局上下文信息增强网络的注意力机制,以改善模型对图像的理解和处理能力。它的核心思想是在每个残差块之后添加一个全局上下文模块(即本文的Global Context注意…

【Quart 框架——来源于Flask的强大且灵活的异步Web框架】

目录 前言一、Quart简介1-1、简介1-2、与flask的区别 二、快速开始2-1、安装2-2、基本用法 三、核心功能3-1、异步路由3-2、WebSockets 支持3-3、中间件3-4、蓝图 (Blueprints) 四、部署4-1、使用uvicorn部署4-2、使用hypercorn部署 五、案例分析总结 前言 Quart 是一个基于 Py…

【Python】爬虫实战01:获取豆瓣Top250电影信息

本文中我们将通过一个小练习的方式利用urllib和bs4来实操获取豆瓣 Top250 的电影信息,但在实际动手之前,我们需要先了解一些关于Http 请求和响应以及请求头作用的一些知识。 1. Http 请求与响应 HTTP(超文本传输协议)是互联网上…

虚函数__

10 文章目录 虚函数虚函数表override(不允许后续函数继承)虚析构纯虚函数 虚函数 虚函数表 override(不允许后续函数继承) 虚析构 纯虚函数

从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)

目录 文章目录 目录摘要1.将PX4源码上传至腾讯工蜂2.从腾讯工蜂克隆源码到本地ubuntu3.如何查看自己源码的版本信息 摘要 本节主要记录从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)及如何查看PX4的固件版本信息,欢迎批评指正! PX4源码版本V1.…

构建新纪元:Gradle中Kotlin插件的配置全指南

构建新纪元:Gradle中Kotlin插件的配置全指南 引言 Kotlin,这门现代、简洁的语言,正在逐渐成为Java平台的有力补充。随着Kotlin在Android开发中的广泛采用,以及对服务器端和Web开发的支持,Kotlin插件在Gradle中的配置…

mysql-联合查询

一.联合查询的概念 .对于unio查询,就是把多次查询的结果合并起来,形成一个新的查询果集。 SELECT 字段列表 FROM 表A... UNION[ALL] SELECT 字段列表 FROM 表B..., 二.将薪资低于5000的员工,和年龄大于50岁的员工全部查询出来 select * from emp where salary&…

无人机的工作原理

无人飞行器(UAV,即Unmanned Aerial Vehicle)的工作原理涉及多个复杂的系统和技术。以下是对各个系统和技术的详细介绍: 1. 飞行控制系统(FCS) 飞行控制系统是无人机的“大脑”,负责监控和调整…

【Android】在渲染生效前提前测量View大小

问题 Android的UI机制是基于MessageHandler的,View并不会在添加后就会被立刻测量渲染出来 但有时我们需要动态去计算布局,希望在添加View时,就能知道这个View的高度 方法 此时,我们可以手动去调用measure方法,来测…

使用 Apache Pulsar 构建弹性可扩展的事件驱动应用

本视频来自 2024 Apache Pulsar 欧洲峰会,由 David Kjerrumgaard, 《Pulsar in Action》书作者给大家带来的《使用 Apache Pulsar 构建弹性可扩展的事件驱动应用》分享。 嘉宾|David Kjerrumgaard,Apache Pulsar Committer,《Pul…

总结单例模式的写法

一、单例模式的概念 1.1 单例模式的概念 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。就是当前进程确保一个类全局只有一个实例。 1.2 单例模式的优…

基于php+mysql的简单图书管理系统(附源码)

一、模块设计 二、技术选型 IDE:phpstorm mysql:5.1 php:7.3.29 运行工具:phpstudy 三、数据库设计 用户表: CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,uname varchar(255) DEFAULT NULL,upass…

C语言的神髓

​​​​​​​ ​​​​​​​

JAVA-报表模糊搜索询易实现

背景: 一般文件报表经常会需要搜各个表头对应内容,如果支持全部类型切换搜索,操作起来就不够便捷。而且这个报表是测试自己用的,准确性可以不用太要求,所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。 方法一:解析搜…

记录些Redis题集(3)

分布式锁 分布式锁是一种用于在分布式系统中实现互斥访问的机制,它可以确保在多个节点、或进程同时访问共享资源。如果没有适当的锁机制,就可能导致数据不一致或并发冲突的问题。 分布式锁需要的介质 需要一个多个微服务节点都能访问的存储介质&#…

matine组件库踩坑日记 --- react

Mantine实践 一 禁忌核心css样式二 添加轮播图扩展组件 一 禁忌核心css样式 import React from react import ReactDOM from react-dom/client import { BrowserRouter } from react-router-dom; import App from ./App.jsx import ./index.css import mantine/core/styles.cs…

RocketMQ~架构了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统,由阿里巴巴团队开发,在 2016 年底贡献给 Apache,成为了 Apache 的一个顶级项目。 在阿里内部,RocketMQ 很好地服务了集…

DHCPv6 详情及其报文介绍 - 附配置案例及验证命令(Cisco)

DHCPv6 诞生的原因 IPv6 协议具有地址空间巨大的特点,但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。IPv6 无状态地址配置方式(RFC2462)是目前广泛采用的 IPv6 地址自动配置方式。配置了该协议的主机只需相邻设备…