为什么我自己的suid-ed程序仍然保留原始的uid?

时间:2013-05-01 03:40:10

标签: c linux permissions suid

我正在使用以下程序,并且我已经对它进行了欺骗(通过以root身份运行chown root XXX; chmod 4755 XXX),但输出仍然是ruid 1000, euid 1000, suid 1000,不应该影响uid为零?

#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>

int main()
{
        uid_t ruid, euid, suid;
        if (! getresuid (&ruid, &euid, &suid))
                printf ("ruid %d, euid %d, suid %d\n", ruid, euid, suid);
        else
                perror ("getresuid");

        return 0;
}

输出ls -l:

-rwsr-xr-x 1 root root 9.7K May 1 11:36 test*

1 个答案:

答案 0 :(得分:4)

请检查mount命令输出,您的文件系统可以使用nosuid选项挂载。

从装载手册页

  

nosuid:不允许set-user-identifier或set-group-identifier位   生效。