Linux进程权限
本文是Linux系统下讨论。注意Linux和Unix有很多不同的地方并且各个不同的Unix系统也有很多不同。本文讨论对象ruid: real user id即实际用户也即当前登录的用户euid: effective user id 即有效用户也即以哪个用户身份来执行脚本suid: set user id 设置执行用户fuid: file system user id, 即文件系统用户s权限位: 即 set user ID bit即除了rwx之外的那个s标志位查看这几个uid有2种方式使用ps命令ps-ax-oruid-oeuid-osuid-ofuid-opid-ofname查看进程的status文件cat/proc/{pid}/status|grepUid另查看用户的uid、gid等可以使用命令 id1. 普通场景下的uid情况实验1首先a.out程序属于用户test1和组test.然后su test1作为test1用户。然后执行a.out程序。此时使用方法1观察可见4个uidruid, euid, suid, fuid全部为test1.然后su test2作为test2用户。再执行a.out程序。再用方法1观察可见4个uid全部都变成了test2.结论1在普通场景下这4个uid等同于ruid, 即执行用户的uid而和文件的owner无关。2. 关于权限出让的情况实验2-1出让权限给其他用户注意只有root用户才能出让权限给其他用户首先a.out程序属于用户test1和组test;但是在a.out程序中使用系统调用setuid()将uid设置为test2的uid.然后让root用户来执行此程序使用方法1观察会发现4个uid都是 test2 的 uid实验2-2和实验2-1基本一致不同点在于在a.out程序中使用seteuid()系统调用将euid设置为test2的euid.此时用方法1观察会发现ruidrooteuidtest2suidrootfuidtest2结论2setuid和seteuid是有区别的:setuid是永久放弃了root用户权限转让给非root用户后无法再收回seteuid只是临时放弃root用户权限将来可通过seteuid(0)再回到root权限seteuid会同时改变euid和fuid都为所设置的euid的值只有root用户才能出让权限即只有root用户才能调用setuid.权限出让的常见场景比如apache和mysql启动的时候使用root用户启动设置一些root用户才能操作的系统配置而在创建子进程时通过setuid降级为nobody用户。3. s权限位对进程权限的影响实验3首先a.out属于test1用户和test用户组然后以test1用户的身份来运行chmod us a.out最后使用root用户来运行a.out使用方法1 ps命令来查看进程情况会发现ruidrooteuidsuidfuidtest1s权限位最经典的案例是passwd命令-rwsr-xr-x1root root45396may252012/usr/bin/passwd由上可见user2有权限执行passwd, 即rws里的s执行时ruid仍是user2而euid是root. 注意ruid总是实际执行者的uid而目前这个case下euid是文件所有者的uid.user2之所以能够改变他自己的密码是因为passwd内部会检查ruid是否是root若不是则其行为会局限于修改ruid的密码让euid变成root是必须的因为密码的改变必然要求写/etc/shadow文件而该文件权限位是 640即只有root能写所以euid必须是root.结论3euid和ruid什么时候不一样呢只有一种情况可执行文件设置了suid位然后由非owner用户来执行此时ruid为执行者而euid为owner.4. 对用户文件权限的影响实验4在程序中setfsuid({test2_uid}), 然后调用fopen(some file, a);该程序执行结束后使用 ls -l 会发现文件已经变成了属于test2的文件。结论4影响用户文件权限的是fuid不是euid.fuid是Linux特有的属性Unix系统是靠euid来判定用户权限。5. 进程权限的继承结论5当使用fork子进程的时候子进程全部继承父进程4个uid当使用exec系列函数时候会把suid置为euid参考文献http://blog.chinaunix.net/uid-27105712-id-3349522.htmlhttp://blog.csdn.net/nirendao/article/details/55549515(END)

相关新闻

HarmonyOS ArkTS 实战:实现一个校园证件照拍摄与预约应用

HarmonyOS ArkTS 实战:实现一个校园证件照拍摄与预约应用

HarmonyOS ArkTS 实战:实现一个校园证件照拍摄与预约应用 项目效果 本文使用 HarmonyOS 和 ArkTS 实现一个校园证件照拍摄与预约应用。 应用可以预约证件照拍摄,选择证件照尺寸,在线选片,查看拍摄样片,并提供拍摄预约、照片下载、打印配送等功能。 项目使用 DevEco Studio…

2026/7/23 1:20:49 阅读更多 →
Tiva™ C系列外设管理:PP与SR寄存器实战指南

Tiva™ C系列外设管理:PP与SR寄存器实战指南

1. 从寄存器手册到实战:Tiva™ C系列外设管理的核心逻辑如果你和我一样,长期泡在嵌入式开发的一线,特别是基于ARM Cortex-M内核的MCU,那你肯定对“外设管理”这四个字深有感触。它远不止是初始化几个时钟、配置几个引脚那么简单。…

2026/7/23 1:20:49 阅读更多 →
深入解析ADC转换组:从基础原理到Hercules MCU高级应用

深入解析ADC转换组:从基础原理到Hercules MCU高级应用

1. ADC转换组:从“单兵作战”到“协同作战”的进化在嵌入式系统,尤其是实时控制系统的开发中,模数转换器(ADC)的角色,就像是系统的“感官”。它负责将外部世界的连续模拟信号(如温度、压力、电压…

2026/7/23 1:20:49 阅读更多 →

最新新闻

深入解析Tiva™ MCU时钟系统:从PLL配置到低功耗管理实战

深入解析Tiva™ MCU时钟系统:从PLL配置到低功耗管理实战

1. 项目概述:微控制器的心脏——时钟系统在嵌入式开发领域,无论是驱动一个简单的LED闪烁,还是处理复杂的实时通信协议,微控制器(MCU)的每一次“心跳”都至关重要。这个“心跳”的节拍器,就是时钟…

2026/7/23 2:01:03 阅读更多 →
AI如何帮教师省下3小时备课时间

AI如何帮教师省下3小时备课时间

博主介绍 👨‍💻 了解博主:波仔椿 📖 人生箴言:AI 不会淘汰人,但会用 AI 的人会淘汰不会用的人。 🧰 我的专栏:AI杂谈会 文章内容 前阵子晚上十一点多,我表姐给我发了条…

2026/7/23 2:01:03 阅读更多 →
【AI治理】合规即架构:生成式AI证据包(CEP)结构化设计、生命周期落地与市场影响分析

【AI治理】合规即架构:生成式AI证据包(CEP)结构化设计、生命周期落地与市场影响分析

合规即架构:生成式 AI 服务证据包的结构化演进与市场影响英文标题:A Compliance-as-Architecture Framework for Generative AI Service Evidence Packages🕒 写作说明:本文提出的架构思想具备长期通用性;文中法规条款…

2026/7/23 2:01:03 阅读更多 →
管理的本质是变无序为有序,从项目到组织体系构建|卓越管理者

管理的本质是变无序为有序,从项目到组织体系构建|卓越管理者

管理的本质是变无序为有序 从项目到组织的秩序构建 在企业中做管理的都深有体会,你管好一个项目,可能是个人能力。你管好十个同时在跑的项目,靠的一定是组织能力。 很多公司都经历过这个阶段,业务发展快,项目越接越…

2026/7/23 2:01:03 阅读更多 →
2026年储能船型开关品牌,这3家核心供应商值得信赖

2026年储能船型开关品牌,这3家核心供应商值得信赖

随着储能行业在2026年迎来新一轮爆发,储能设备的核心组件——船型开关的质量与供应链稳定性,正成为企业成本控制和产品竞争力的关键。我过去一年跑了20多家储能工厂,发现很多采购都在抱怨:开关品牌多但靠谱的少,选错一…

2026/7/23 2:01:03 阅读更多 →
识别关键人才:企业真正的竞争,是“谁”在关键岗位上

识别关键人才:企业真正的竞争,是“谁”在关键岗位上

上一节课我们拆解了关键岗位,清楚了企业80%的核心结果,来自20%的核心岗位,解决了“企业要守住哪些位置”的问题。 但同样的岗位,为什么结果天差地别? 同样是店长岗位,有人单店年入千万,有人常…

2026/7/23 2:00:03 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻