为什么我自己的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:不允许设置用户标识或设置组标识位 生效。
哦,废话,甚至没有收到错误信息,谢谢! – daisy 2013-05-01 04:16:31