小编dav*_*vid的帖子

SUID 位不适用于 /tmp 目录中的可执行文件

从启用了 SUID 位 (chmod +s) 的可执行文件打印 getuid() 和 geteuid() 的值,如果该可执行文件位于 /tmp 目录中,则结果似乎是原始调用者 ID 而不是所有者 ID .

将完全相同的代码编译到主目录(并执行 chmod +s)时,这似乎按预期工作。

我搜索了很多,找不到任何关于这种行为的参考。

有人知道为什么会这样吗?

这个来源很简单:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(){
    printf("%d\n%d\n", getuid(), geteuid());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

setuid permissions tmp

4
推荐指数
1
解决办法
1801
查看次数

标签 统计

permissions ×1

setuid ×1

tmp ×1