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

问题描述:

我正在使用下面的程序,并且我已经suid-ed了(通过以root身份运行chown root XXX; chmod 4755 XXX),但输出仍然是ruid 1000, euid 1000, suid 1000,应该不会影响这里的零? -l LS的为什么我自己的suid-ed程序仍然保留原始的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; 
} 

输出:

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

请检查mount命令的输出,你的文件系统可以安装与nosuid选项。

从安装手册页

了nosuid:不允许设置用户标识或设置组标识位 生效。

+0

哦,废话,甚至没有收到错误信息,谢谢! – daisy 2013-05-01 04:16:31