我從一些書中讀到seuuid與euid和保存的UID一起可以用來臨時刪除root權限。這種情況是:是否有缺陷使用seteuid臨時刪除root權限
- 將euid設置爲非root用戶。
- 做一些不需要root權限的事情。
- 設置euid再次根(這是因爲root仍然是保存的UID)。
我認爲這是有缺陷的。在步驟2中,某些惡意代碼也可能會對root執行seteuid操作,因此這種刪除root權限的方法並不能防止劫持代碼獲得root權限。我的分析是否正確?如果是這樣,那麼seteuid-on-saved-UID可以用於什麼?
是的。所以seteuid-on-real-uid很有用。但是無論如何都應該避免使用seteuid-saved-uid,是嗎? – Middleware
seteuid-to-saved-uid也有其用途 - 但應謹慎對待。我在DBMS上工作; (部分)主服務器引擎以root權限運行;它使用'seteuid()'在root和'相關的用戶ID'之間切換,然後再次代表相關用戶創建文件。相關用戶根據其請求的要求而變化。即使使用COW,fork()的成本對於該系統來說也是相當可觀的 - DBMS可以使用主(共享)內存,sempahore集的GiB,並且您可以將其命名。 –