CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

怎样在程序中从普通用户切换到root用户?

楼主conccy(想飛的豬)2005-02-17 14:44:54 在 Linux/Unix社区 / 程序开发区 提问

怎样在程序中从普通用户切换到root用户?使进程拥有root权限?  
  我看了csdn上很多的文档还是没有弄明白,我以普通用户身份直接使用setuid(0),这当然是不会成功的!不知道有什么好的方法吗?请列出代码,谢谢。 问题点数:100、回复次数:16Top

1 楼vfork(學習htm、css、js、java,然後到ajax。)回复于 2005-02-17 15:13:00 得分 10

一点愚见!好几年没摸过GUN   C了.  
   
  如果楼主实在找不到办法,就试试system("su")吧,  
  把当前用户改为root来试试看.  
  当然fork一个进程来代替system()更好!呵呵Top

2 楼conccy(想飛的豬)回复于 2005-02-17 16:02:59 得分 0

用system("su")只能调用系统命令行的su命令,但是好像程序本身并没有得到root权限。  
  你说如果fork()一个进程,如果本身的进程并不是root权限,那么fork()后的进程一样也没有权限阿!?Top

3 楼tengulre(debian core developer)回复于 2005-02-17 16:04:39 得分 5

xuexi..Top

4 楼beepbug(放屁虫)回复于 2005-02-17 16:34:05 得分 5

如果可以在程序里切换到超级用户,那这个系统也太不安全了。  
  关注中。。。Top

5 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-02-17 16:49:19 得分 20

当然是可以的,不过这个程序本身也要setuid才行啊,仅仅调用setuid这个当然是不可以的了Top

6 楼conccy(想飛的豬)回复于 2005-02-17 18:22:12 得分 0

马甲,你说的是set文件本身的setUID属性?我设置了SUID属性,好像还是不行,可能是我的方式不对!有谁可以详细说说吗?Top

7 楼conccy(想飛的豬)回复于 2005-02-17 18:25:19 得分 0

如果本身是以root身份运行的话,可以不要任何条件的setuid(n),如果在运行中再次运行setuid(O),也是一样不行的!谁来帮帮我这个菜鸟^_^Top

8 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-02-17 18:51:08 得分 0

刚把机器关掉……  
   
  晚上帮你试试看吧Top

9 楼tukey(反美反霸权!)回复于 2005-02-17 22:18:33 得分 5

su   rootTop

10 楼piaozi2003()回复于 2005-02-18 08:40:58 得分 10

只有超级用户才可以设置文件的set-user-id位Top

11 楼conccy(想飛的豬)回复于 2005-02-18 09:23:42 得分 0

我看到有个软件只输入管理员密码就可以得到root权限,是不是管理员权限能够自动提升到root权限?还是利用了系统漏洞?Top

12 楼conccy(想飛的豬)回复于 2005-02-18 09:57:49 得分 0

如果fork()一个新进程是否有可能实现?Top

13 楼autoegg(哲学指引生活 && (动心忍性,增益其所不能))回复于 2005-02-18 10:03:48 得分 5

关注并学习Top

14 楼conccy(想飛的豬)回复于 2005-02-18 10:18:02 得分 0

我想谁有su的源代码就好了^_^Top

15 楼gettext(冰雪之崖)回复于 2005-02-18 10:42:56 得分 40

教你一把  
  a.c  
  #include   <stdio.h>  
   
  int   main(void)  
  {  
          int   ret;  
          ret   =   setuid(0);  
          printf("ret   %d\n",   ret);  
          system("/bin/bash");  
  }  
   
  #   cc   a.c  
  #   chmod   04777   a.out  
  #   chown   root:root   a.out  
  #   su   -   guest  
  $   a.out  
  ret   1  
  #Top

16 楼conccy(想飛的豬)回复于 2005-02-18 11:12:44 得分 0

谢谢,问题基本上解决了,和冰雪无涯的差不多:)  
  揭帖。Top

相关问题

  • 怎样在程序中将普通用户切换成root用户
  • root不能切换到普通用户?求助
  • 程序切换问题 急!
  • 怎样实现程序切换功能?
  • 切换程序、热键问题
  • 怎样切换到我的WinForm?然后切换到原来的程序。
  • 从对话框程序切换到其他的程序的消息?
  • 启动外部程序后怎样在两个程序间切换?
  • 怎样在程序中控制切换到某个应用程序窗口
  • 怎样在程序切换时保留客户区画面?

关键词

  • 用户
  • 普通
  • root
  • 系统
  • 权限
  • setuid
  • 切换
  • 程序
  • 进程
  • fork

得分解答快速导航

  • 帖主:conccy
  • vfork
  • tengulre
  • beepbug
  • nodummy
  • tukey
  • piaozi2003
  • autoegg
  • gettext

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo