setuid 在 Pop!_OS 中未按预期工作

setuid 在 Pop!_OS 中未按预期工作

所以我试图尝试一下setuid。根据我的理解,它允许用户在所有者的上下文中运行二进制文件。所以我用 C 编写了一个程序,它/root在只有“root”用户可以执行的目录中执行写操作。我编译了它,并将生成的二进制文件的所有者更改为“root”,并setuid使用以下命令添加了权限:

$ chmod u+s binary_generated

文件权限看起来像这样

-rwsrwxr-x 1 root root 21112 Jun 29 11:26 binary_generated

所以现在我的普通用户应该能够使用 root 用户上下文执行这个二进制文件,并且它应该允许我写入/root目录。但它仍然给我Permission Denied错误:

[!!] Fatal Error in main() while opening file: Permission denied

我正在使用 Pop!_Os 20.04 和 Linux 5.4.0-7634-generic

我认为它必须与内核或操作系统中的安全功能有关。

相关内容