免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3573 | 回复: 4

[C] 请教关于setuid的问题 [复制链接]

论坛徽章:
1
2015亚冠之迪拜阿赫利
日期:2015-11-03 10:08:57
发表于 2013-10-12 21:31 |显示全部楼层
APUE中说:
setuid()
1:root权限下可以更改实际用户ID和有效用户ID。
2:非root权限则只更改有效用户ID。

现附上本人代码:
  1. #include<unistd.h>
  2. #include<stdio.h>

  3. int main(int argc, char *argv[])
  4. {
  5.         printf("before setuid\n");
  6.         printf("uid:%d,euid:%d,\n",getuid(),geteuid());
  7.        
  8.         setuid(2);       
  9.         printf("after setuia(2)d\n");
  10.         printf("uid:%d,euid:%d,\n",getuid(),geteuid());
  11. /*       
  12.         setuid(3);       
  13.         printf("after setuid(3)\n");
  14.         printf("uid:%d,euid:%d,\n",getuid(),geteuid());
  15. */
  16.         setreuid(1,0);
  17.         printf("after setreuid(1,0)\n");
  18.         printf("uid:%d,euid:%d,\n",getuid(),geteuid());

  19.         seteuid(2);
  20.         printf("after seteuid(2)\n");
  21.         printf("uid:%d,euid:%d,\n",getuid(),geteuid());

  22. //        puts(getlogin());
  23.        
  24.         return 0;
  25. }
复制代码

运行结果如下: set1.jpg
非root权限下执行setuid和setreuid之后uid 和 euid没有一点变化;

我的问题是:
一、非root权限不能执行setreuid函数和seteuid函数吗?
二、按照APUE中的setuid函数的解释,非root权限只能改变有效用户ID,但是非root用户权限下执行setuid,有效用户ID为什么得不到变化。

请大神们指教!!!

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2013-10-13 13:44 |显示全部楼层
大哥,你一个普通用户,有什么权利切到别的用户?

你检查setuid返回值,不是-1我倒着走。

这种问题很明显要用s权限来测试。

论坛徽章:
1
2015亚冠之迪拜阿赫利
日期:2015-11-03 10:08:57
发表于 2013-10-13 15:56 |显示全部楼层
回复 2# linux_c_py_php


额,大哥,不要激动,我明白了。   

论坛徽章:
4
白羊座
日期:2013-09-17 21:59:30技术图书徽章
日期:2013-10-12 22:16:03白羊座
日期:2013-10-14 11:01:40双子座
日期:2013-12-17 18:26:39
发表于 2013-10-13 21:08 |显示全部楼层
回复 1# net小伙
非特权用户改变有效用户id是有条件的:
  1. Unprivileged processes may only set the effective user ID to the real user ID, the effective user ID, or the saved set-user-ID.
复制代码

论坛徽章:
1
2015亚冠之迪拜阿赫利
日期:2015-11-03 10:08:57
发表于 2013-10-13 22:18 |显示全部楼层
回复 4# 井蛙夏虫

谢谢!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP