1
many places記載setuid
位使普通用戶能夠使用執行所有者的權限而不是他自己的權限運行可執行文件。setuid位在* nix中實際如何實現?
但是,我還沒有找到任何地方記錄了setuid
位的實現。
這是我的猜測。
- 當命令從
bash
,它使fork
然後exec
系統調用。 - 控制權交給內核,內核檢查
exec
參數上的setuid
位。 - 如果內核發現該位已設置,則它會開始將新進程的
euid
設置爲文件所有者,然後啓動新進程。 - 該進程通常以文件所有者的權限退出。
- 原始
bash
進程從未獲得root權限。
這是接近於它是如何在實際中實際實現的,還是它是一組不同的步驟?
是的,這是正確的。閱讀[execve(2)](http://man7.org/linux/man-pages/man2/execve.2.html) –
@BasileStarynkevitch,感謝您的參考。我只看過'exec'的手冊頁。 – merlin2011