Real User ID 和 Effective User ID 的区别

news2024/11/14 22:50:26

在 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.coloradmin.cn/o/1924028.html

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

相关文章

STM32入门开发操作记录(一)——新建工程

目录 一、课程准备1. 课程资料2. 配件清单3. 根目录 二、环境搭建三、新建工程1. 载入器件支持包2. 添加模块3. ST配置4. 外观设置5. 主函数文件 一、课程准备 1. 课程资料 本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资…

五. TensorRT API的基本使用-MNIST-model-build-infer

目录 前言0. 简述1. 案例运行2. 代码分析2.1 main函数2.2 build接口2.3 infer接口2.4 其他 总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习课程第五章—TensorRT API 的基…

7.13实训日志

上午 学习网络安全的过程中,我们深入了解了网络的不同层面和技术,从表层网络到深网再到暗网,以及涉及的产业分类和技术工具。这些知识不仅帮助我们理解网络的复杂性,还揭示了如何应对和防范各种网络威胁。 首先,我们…

滞后序列分析案例详解

一个半小时 超出30分钟 日期:2024-07-13 19:14:33 回放 摘要 Python在行为分析中的应用 主要讲述了如何使用Python处理序列数据,以及如何结合定性分析和定量分析来全面分析课程内容。讲者提到了一种叫做分层法的分类方法,该方法使用了布鲁…

记录vite项目中Cornerstone的兼容问题(持续更新)

🔎 在vite项目中打包提示错误 ESM integration proposal for Wasm" is not supported currently. ⛳️ 问题描述 Error: Could not load /home/xxx/xxx/node_modules/icr/polyseg-wasm/dist/ICRPolySeg.wasm (imported by node_modules/icr/polyseg-wasm/di…

【软件建模与设计】-02-UML图

目录 摘要 1、用例图(use case diagram) 2、类与对象 3、类图 3.1、四种关系 3.2、可见性 4、交互图 4.1、通信图 4.2、顺序图 5、状态机图 6、包图 7、并发通信图 8、部署图 9、UML扩展机制 9.1、构造型 9.2、标记值 9.3、约束 摘要 用…

log4j2的日志框架(详细,springboot和异步日志的实现)

目录 log4j2的介绍 Log4j2的性能 SpringBoot中的使用Log4j2 log4j2的进阶--异步日志 AsyncAppender方式 AsyncLogger方式 log4j2的介绍 Apache Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带 来…

韦东山嵌入式linux系列-驱动进化之路:总线设备驱动模型

1 驱动编写的 3 种方法 以 LED 驱动为例 1.1 传统写法 使用哪个引脚,怎么操作引脚,都写死在代码中。 最简单,不考虑扩展性,可以快速实现功能。 修改引脚时,需要重新编译。 应用程序调用open等函数最简单的方法是驱动…

ISO 45001:提升职业健康与安全管理水平的关键

在现代企业管理中,员工的职业健康与安全(OH&S)已经成为不可忽视的重要议题。ISO 45001作为国际标准化组织(ISO)制定的职业健康与安全管理体系标准,为企业提供了科学有效的管理规范和指南。实施这一标准…

C#中的反射

dll和exe文件的区别 用途: .exe(可执行文件):是可以直接运行的程序文件。当你双击一个 .exe 文件或在命令行中输入它的名字,操作系统会加载并执行这个程序。 .dll(动态链接库):包含…

如何在SpringCloud中使用Kafka Streams实现实时数据处理

使用Kafka Streams在Spring Cloud中实现实时数据处理可以帮助我们构建可扩展、高性能的实时数据处理应用。Kafka Streams是一个基于Kafka的流处理库,它可以用来处理流式数据,进行流式计算和转换操作。 下面将介绍如何在Spring Cloud中使用Kafka Streams实…

从零开学C++:类和对象(中)

引言:在我们学习了类和对象(上)的基础知识后,我们就需要进入类和对象(中)的学习。本篇博客将会介绍C的几个默认成员函数,它们的存在虽然难以理解,但也是C如此简单实用的原因之一。相…

C++学习指南(一)——C++入门基础

欢迎来到繁星的CSDN,本期内容主要包括C第一个程序,命名空间,缺省参数,函数重载,引用、inline以及nullptr这些基础概念。 在进入正题之前,我需要先阐述一下。本系列涉及的内容为C部分,可以理解为…

The Open Group 爱丁堡大会高光集锦——企业架构、人工智能和可持续发展的创新交叉点

4月底,The Open Group峰会在英国爱丁堡顺利举办。活动邀请到数十位领域专家、技术、论坛成员、工作组和联合组织等相聚在一起,围绕生态系统架构和人工智能标准、可持续性、企业架构、数字转型等话题进行了对话与探讨。大会吸引了来自30个国家的400位观众…

bi项目笔记

1.bi是什么 bi项目就是商业智能系统,也就是数据可视画、报表可视化系统,如下图的就是bi项目了 2.技术栈

Mysql数据库的备份与恢复以及索引操作

一,备份与恢复操作 1,创建数据库booksDB CREATE DATABASE booksDB; use booksDB; 2,建表 (1)创建表books CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NUL…

MYSQL--第八次作业

MYSQL–第八次作业 一、备份与恢复 环境搭建: CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );CREATE TABLE authors ( auth_id INT NOT NULL PRI…

SpringCloud第三篇(服务中心与OpenFeign)

p 文章目录 一、服务中心二、Nacos注册中心 一、服务中心 在上一章我们实现了微服务拆分,并且通过Http请求实现了跨微服务的远程调用。不过这种手动发送Http请求的方式存在一些问题。 试想一下,假如商品微服务被调用较多,为了应对更高的并发…

【JavaEE】AOP实现原理

概述 Spring AOP 是基于动态代理来实现AOP的, 此处主要介绍代理模式和Spring AOP的源码剖析 一.代理模式 代理模式是一种常用的设计模式,它允许为其他对象提供代理,以控制对这个对象的访问。这种结构在不改变原始类的基础上,通过引入代理类…

前端的页面代码

根据老师教的前端页面的知识&#xff0c;加上我也是借鉴了老师上课所说的代码&#xff0c;马马虎虎的写出了页面。如下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</ti…