已设置 root 的 Setuid 位,但实际用户 ID 不为 0

已设置 root 的 Setuid 位,但实际用户 ID 不为 0

我的程序permissiontest具有以下权限:

-rwsrwxrwx 1 root root 8664 Nov 18 15:59 permissiontest

以非root用户身份运行时,它由以下代码组成:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    printf("EUID: %d\n", geteuid());
    printf("RUID: %d\n", getuid());
    return (EXIT_SUCCESS);
}

它输出:

EUID: 1000
RUID: 1000

从我读过的有关 setuid 位的内容来看,我认为执行程序时真实用户 ID 应为 0,因为 root 是该程序的所有者。但是,真实用户 ID 似乎不是 0。

谁能告诉我为什么会这样?

该程序位于本地硬盘上,并且 fstab 未指示任何内容,因此不应涉及任何安装问题。

相关内容