Referred Blogs

Real UID, Effective UID, Saved UID区别


Content

Each UNIX proces has 3 UIDs associated to it. Superuser privilege is UID=0.

每一个Unix进程拥有3个用户ID与之关联.超级权限的用户ID为0.

Real UID

真实用户ID


This is the UID of the user/process that created THIS process. It can be changed only if the running process has EUID=0.

这是创建这个进程的用户/进程的用户ID.只有有效用户ID是0才能修改这项信息.

Effective UID

有效用户ID

This UID is used to evaluate privileges of the process to perform a particular action. EUID can be change either to RUID, or SUID if EUID!=0. If EUID=0, it can be changed to anything.

这项用户ID是用来扩充进程的权力以用来开展一项特定的操作.有效用户ID在有效用户ID不为0时,能被切换为真实用户ID或者保存用户ID.如果有效用户ID为0,它能被切换成任何用户ID.

Saved UID

保存用户ID


If the binary image file, that was launched has a Set-UID bit on, SUID will be the UID of the owner of the file. Otherwise, SUID will be the RUID.

如果一项二进制图像文件,含有Set-UID的二进制标记,那么保存用户ID将会成为这个文件拥有者的用户ID.否则,保存用户ID将会变成真实用户ID.

What is the idea behind this?

这之后的意义是什么?

Normal programs, like “ls”, “cat”, “echo” will be run by a normal user, under that users UID. Special programs that allow user to have controlled access to protected data, can have Set-UID bit to allow the program to be run under privileged UID.

常见的程序,像"ls",“cat”,"echo"一般用户所运行时,是基于这个一般用户的用户ID进行的.特定的程序当用户在访问限制数据的时候会受到限制,能通过设置Set-UID位来允许该程序通过特权用户ID来运行该程序.

An example of such program is “passwd”. If you list it in full, you will see that it has Set-UID bit and the owner is “root”. When a normal user, say “ananta”, runs “passwd”, passwd starts with:

一个这样的例子就是"passwd".如果你采取命令显示文件的所有信息,就能看到它标记了set-uid位并且该文件的拥有者是超级权限"root".当一个一般用户"ananta",运行"passwd"程序,passwd的用户ID设置如下:

Real-UID = ananta
Effective-UID = ananta
Saved-UID = root

The the program calls a system call “seteuid( 0 )” and since SUID=0, the call will succede and the UIDs will be:

这个程序会执行一个系统调用"seteiud(0)"而且,如果SUID=0,这次调用将会成功并且用户ID配置将会变成:

Real-UID = ananta
Effective-UID = root
Saved-UID = root

After that, “passwd” process will be able to access /etc/passwd and change password for user “ananta”. Note that user “ananta” cannot write to /etc/passwd on it’s own. Note one other thing, setting a Set-UID on a executable file is not enough to make it run as privileged process. The program itself must make a system call.

在此之后,"passwd"进程就将能够使用/etc/passwd 然后为"ananta"修改密码.注意,ananta用户本身并不能对/etc/passwd文件进行写入操作.另外,还需要注意,为一个可执行文件设置set-uid位并不足以让该程序在运行的时候获得相应的特殊权限,该程序本身必须要执行一个系统调用才能达成相应的目的.


Conclusion

总而言之,按照这里的描述,我个人对于这三者的理解是这样的:
RealUID是根据当前的操作用户/进程而定的.
SavedUID则是充当一个暂存的容器,如果设置了set-uid位,则其设置为和当前文件拥有者相同,不然,则设置为和RealUID相同.
EffectiveUID的作用是作为实际起作用的,发挥效果的UID信息,这个UID是随着运行状态不断变化的,当前的EUID的实际设置将直接决定这个EUID的可变化状态.

(翻译)Real-UID,Effective-UID,Saved-UID区别相关推荐

  1. mysql uid怎么获取_新浪微博API如何获取uid,并根据uid获取用户的基本信息

    新浪微博API如何获取uid,并根据uid获取用户的基本信息,如粉丝,关注等, 下面是根据sdk写的,但是获取不到 public String showUser(Context context, St ...

  2. 关于Android获取流量计数TrafficStats.getUidRxBytes(uid)和TrafficStats.getUidTxBytes(uid)返回-1解决方案

    最近一个关于流量的项目在Android7.0系统的手机上运行,一直获取不到流量的使用数据,查看源码然后发现TrafficStats.getUidRxBytes(uid)和TrafficStats.ge ...

  3. linux uid 不同用户,Linux系统中每个用户都有一个唯一的UID,超级用户的UID是 。

    Linux系统中每个用户都有一个唯一的UID,超级用户的UID是 . 0.5用分数表示是______,约成最简分数是______.线偏振光在n1和n2介质的界面上发生全反射,线偏振光电矢量的振动方向与 ...

  4. [翻译论文]An effective approach for land-cover classification from airborne lidar fused with co-register

    [翻译论文]An effective approach for land-cover classification from airborne lidar fused with co-register ...

  5. linux uid gid 作用,Linux uid和gid

    Linux uid和gid教程 我们在登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字).Linux ...

  6. linux进程属性,Linux进程属性及含义

    一个进程包含多个属性参数,通过使用 ps 命令,我们可以查看当前系统中有关进程的详细信息,例如: [root@localhost ~]# ps -le F S UID PID PPID C PRI N ...

  7. 11、Linux系统基础原理、进程管理工具、任务计划

    Linux进程及作业管理 ​ 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能 ​ Process: 运行中的程序的一个副本: ​ 存在生命周期 Linux内核存储进程信息的固定 ...

  8. Linux内核学习笔记——Linux中的用户组和权限管理(UID是什么?)

    目录 一.背景 进程权限 最小权限原则 二.linux系统安全模型 用户 用户组 用户和组的关系 安全上下文 进程的用户ID 函数setreuid和setregid 函数seteuid和setegid ...

  9. UID, EUID, SUID, FSUID

    前 言 real user ID (uid): 实际用户ID,指的是进程执行者是谁 effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限 saved set- ...

  10. 【Linux】Linux 中的UID

    参考:https://www.cnblogs.com/bwangel23/p/4225818.html 一.Linux 中的UID 1.1 每个进程的三个UID值 内核为每个进程维护的三个UID值.这 ...

最新文章

  1. Ubuntu创建新用户并增加管理员权限
  2. 微软职位内部推荐-Senior PM
  3. 梓益C语言学习笔记之指针
  4. Kung Fu Panda: Legends of Awesomeness 2
  5. 个人博客网站的设计与实现_基于BIS的网站建设的设计与实现
  6. 【华为敏捷/DevOps实践】2. Wiki凭什么持续得到开发人员和团队的喜爱
  7. C语言curl实现FTP上传、下载、获取文件信息
  8. selenium web的自动化测试工具
  9. SAP S4 OP/Cloud大乱斗(转载)
  10. excel两列数据对比找不同_数据相差太大在Excel图表对比柱形图,那是你不会次坐标设置!...
  11. 计算机无法打开小米路由共享文件,其他电脑如何方法小米路由器硬盘共享文件...
  12. oracle-12801,ORA-12801
  13. 5款主流智能音箱入门款测评:苹果小米华为天猫小度,谁的表现更胜一筹?
  14. 农业种植大数据平台构建
  15. /opt/hbase/conf 中不能启动hbase_北京现代伊兰特不能启动
  16. gdb x命令_Coresight及GDB使用介绍 - 大海在倾听
  17. 免费的python编辑器_免的解释|免的意思|汉典“免”字的基本解释
  18. Altium Designer调整PCB丝印位号经验
  19. 世界上最快的排序算法——Timsort
  20. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

热门文章

  1. 聊一聊 SpringBoot 自动配置的原理
  2. java jvm性能调优_java jvm性能优化
  3. decisiontreeregressor_机器学习算法-Decision Tree
  4. plsql objects 过一段时间就会未连接oracle_记一次生产数据库故障排查--连接管理等待事件...
  5. python做图像处理快不快_Python 图像读写谁最快?不信就比一比
  6. webpack创建html项目,从零开始其于webpack搭建bootstrap 4项目
  7. mysql 关闭主从_取消mysql主从复制关系
  8. 【面试必会】editplus使用教程java
  9. 【深度学习】人脸识别和口罩检测的应用
  10. python【力扣LeetCode算法题库】14-最长公共前缀(列表解压)