【发布时间】:2019-12-19 13:16:56
【问题描述】:
我意识到我错过了用户 ID (UID) 和有效用户 ID (EUID) 的一个微妙之处,需要澄清一下。注:我正在开发 macOS,尽管我怀疑在 Linux 世界中一切都有意义。
我创建了一个二进制文件并在上面设置了 setuid 位(使用chmod +s)。如果我运行这个二进制文件并记录来自getuid() 和geteuid() 的值,那么我会看到 UID=501(我的普通用户)和 EUID=0(root)。我可以进一步调用setuid(0) 设置UID=0。
我的问题是,我什么时候需要这样做?即我的进程可以用 (UID, EUID)=(0,0) 做什么,而它不能用 (UID, EUID)=(501,0) 做什么?
【问题讨论】:
-
前者可以运行以
nosuid挂载的文件系统...
标签: macos root userid uid setuid