关于centos x_64 下的s权限位
我做了两个测试,一个是redhat,一个是我的系统,然后以下结果却是不同,让我造成了疑惑。
s权限设置位,可以让进程或得该用户有效设置位,但是我的系统下去没有出现这个功能,如下是我的代码:
#include"../include/apue.h"
int main(){
printf("this is s power,before swap\n");
printf("real uid= %d, effective uid= %d\n",getuid(),geteuid());
printf("\n\n\n now start swap\n");
setreuid(500,0);
seteuid(0);
printf("real uid= %d, effective uid= %d\n",getuid(),geteuid());
exit(0);
}
首先apue的头文件的话,其实就是扩充了所有头文件的头文件。先说一下,setreuid是用来交换实际用户和有效用户ID,然后seteuid用来让有效用户ID设置成用户ID,通常,root用户的ID位0。用ROOT用户编译此文件后,chmod u+s,chmod o+x.之后用普通用户执行后发现有效ID人然是普通用户ID,那么S权限位为什么没有起作用?
在redhat32位上,这个代码符合我的预期结果,但是在centos x_64上却非常符合我的结果