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

时间:2015-05-13 04:58:00

标签: linux bash setuid

many places中记录了setuid位使普通用户能够以执行者所有者的权限而不是他自己的权限运行可执行文件。

但是,我没有找到任何记录setuid位实现的地方。

这是我的推测。

  1. 来自bash的命令,它会进行fork然后exec系统调用。
  2. 控制传递给内核,内核检查setuid参数的exec位。
  3. 如果内核看到该位已设置,则它将开始将新进程的euid设置为文件的所有者,然后启动新进程。
  4. 该进程通常以文件所有者的权限退出。
  5. 原始bash进程从未获得root权限。
  6. 这与实际实施的方式有关,还是一组不同的步骤?

1 个答案:

答案 0 :(得分:0)

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