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/10/12 6:46:23 阅读更多 →
Tiva™ C系列外设管理:PP与SR寄存器实战指南

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

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

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

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

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

2026/10/8 18:11:54 阅读更多 →

最新新闻

Python语音识别实战:从MFCC特征提取到CTC训练与避坑指南

Python语音识别实战:从MFCC特征提取到CTC训练与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:45:56 阅读更多 →
从单Agent到多Agent集群:7x24小时稳定运行的架构设计与实践

从单Agent到多Agent集群:7x24小时稳定运行的架构设计与实践

半夜两点二十三分,我的单 Agent 自动化流程终于把自己玩死了:上下文窗口撑爆之后,它开始对着同一个任务反复"确认",把状态标记改得乱七八糟,任务队列里还堆着两百多条没处理的数据。那一刻我意识到&#xff…

2026/10/12 6:45:56 阅读更多 →
旗帜图片爬虫实战:格式校验、感知哈希去重与增量更新指南

旗帜图片爬虫实战:格式校验、感知哈希去重与增量更新指南

简介:这是一份面向Python爬虫入门学习者与数据分析初学者的实战源码包,以抓取东京奥运会奖牌国家及地区旗帜图片为案例,演示从网页解析、图片下载到数据存储的完整流程。压缩包内含两个文件——一个HTML文件和一个Jupyter Notebook文件&#…

2026/10/12 6:45:56 阅读更多 →
双 11 Token 预算红线硬限制:当单日模型消耗达到 80% 阈值时的自适应限流

双 11 Token 预算红线硬限制:当单日模型消耗达到 80% 阈值时的自适应限流

去年大促预售第一天中午,财务总监踩着高跟鞋直接冲进了我们技术架构组,脸色铁青。她指着大模型供应商后台的账单明细:公司账户里预先充值的 15 万元 Token 额度,从凌晨 0 点到中午 11 点半,短短不到半天时间被烧掉了 1…

2026/10/12 6:45:56 阅读更多 →
大模型私有化部署:从硬件选型到安全合规的全栈生产实践

大模型私有化部署:从硬件选型到安全合规的全栈生产实践

1. 私有化部署不是“把模型拷贝过去”,而是重建一套生产级推理基础设施很多人第一次听说“大模型私有化部署”,脑子里浮现的画面是:下载一个GGUF格式的模型文件,丢进某个本地GUI工具里点几下,然后弹出个聊天窗口——事…

2026/10/12 6:45:56 阅读更多 →
开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源大模型私有化部署实战:算力底座、显存规划与推理框架选型

开源模型私有化部署从来不是一件“装个软件就能跑”的事。我接手过不少内部演示和实验项目,最深的体会是:模型本身的参数再漂亮,落到自己的机器上、接到业务流程里,才是真正见功夫的地方。这段时间圈子里对开源模型的讨论很多&…

2026/10/12 6:44:55 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →