设置 setuid VS 授予执行权限

设置 setuid VS 授予执行权限

我试图了解 setuid 的工作原理。到目前为止,我的理解是,执行应用了 setuid 的文件的进程运行时就好像文件的所有者执行了它,而不管实际执行者是谁。但为什么不直接为所有人设置执行权限(毕竟我认为这就是有效发生的情况)?我可能在这里遗漏了一些明显的东西?

答案1

是的,你错过了一些明显的东西。当您运行cat(或lssedawkvi或任何其他普通程序)时,您将像您自己一样运行它,因此程序/进程受到您的权限的约束。当您运行 setuid 程序(例如 )时passwd,该进程以 root 的 UID 运行,以便它可以修改/etc/shadow (您在自己的 UID 下运行,无法访问该进程 - 甚至无法读取)。

相关内容