首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >setuid位是如何在*nix中实际实现的?

setuid位是如何在*nix中实际实现的?
EN

Stack Overflow用户
提问于 2015-05-13 04:58:00
回答 1查看 155关注 0票数 1

许多地方中有文档表明,setuid位允许普通用户使用执行的所有者而不是自己的权限运行可执行文件。

然而,我没有发现任何地方的setuid位的实现是文档化的。

这是我的猜测。

  1. 当命令来自bash时,它进行fork,然后进行exec系统调用。
  2. 控件传递给内核,内核将检查setuid位在参数上传递给exec
  3. 如果内核看到位被设置,那么它将开始将新进程的euid设置为文件的所有者,然后启动新进程。
  4. 进程通常以文件所有者的权限退出。
  5. 原始bash进程从未获得根权限。

这与实际实现的方式很接近,还是一组不同的步骤?

EN

Stack Overflow用户

发布于 2015-10-21 08:09:01

是的,这是正确的。阅读execve(2) - Basile Starynkevitch

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30206019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档