当前位置:  编程技术>c/c++/嵌入式

使用root权限运行自己所编译程序的解决方法

    来源: 互联网  发布时间:2014-10-12

    本文导语:    这几天照着UNP上提供的ping源码编写了一个用来学习。虽然编译后能运行,但由于使用了原始套接字,必须root权限运行,这与和Linux下真实的ping有差别:后者是不需要输入sudo或者切换到#才能运行的。linux中的ping源码没有找...

  这几天照着UNP上提供的ping源码编写了一个用来学习。虽然编译后能运行,但由于使用了原始套接字,必须root权限运行,这与和Linux下真实的ping有差别:后者是不需要输入sudo或者切换到#才能运行的。linux中的ping源码没有找到,但是看到oschina上有一例自制的ping源码相似,作者提供的示意图中在$提示符下没有用sudo运行的。总之,希望能够使自己编写的程序以root权限运行而不需要加上sudo或者切换到#提示符。

  没有找到能在进程运行时提升自身权限的方法,另查到一种方法(来源见文后注释)可以实现,这两步缺一不可:

(1)用root权限完成gcc;

(2)chmod u+s

  这时,就能像Linux自带的ping一样,无需sudo或切换至#提示符就能运行了。

  当然,由于UNP上的ping源码在创建原始套接字后就使用setuid(getuid()),保持了最小权限原则。


    
 
 

您可能感兴趣的文章:

  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 谁知道如何在i386平台使用交叉编译工具为mips平台编译libtiff啊?
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • 关于大于2G内存的使用.....按32位编译的进程怎么使用大于2G的内存?
  • 使用gcc编译器进行代码编译出来的程序是否遵循gpl协议
  • 在Linux下使用GCC如何编译生成Windows下使用的DLL?
  • 在redhat9.0下,怎样使用自带的gcc编译器的? 是在终端使用吗? 有这方面的资料么?
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 别人编译好的交叉编译的工具链,我在自己系统中怎么使用 急
  • 编译内核的后,我的一个类似USB键盘的HID类设备使用不了了,怎么办?
  • 急求,用户程序使用atomic的编译问题!!
  • linux下的C++编译器怎样使用?
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • 请问什么是预编译,有什么作用。怎么使用?
  • 条件编译可以使用全局变量吗?
  • putty下如何使用gcc编译c或c++程序的资料
  • 各位在Unix下开发,使用哪种c++编译器?
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • Makefile怎么使用root权限
  • 改了文件使用权限之后怎么保存下来啊?
  • 晕了,使用sudo名ing改了usr文件夹的权限,现在都无法使用sudo命令了
  • 在linux下使用realone的权限问题
  • root权限安装的程序,普通用户怎么使用?
  • 如何给某个用户某个命令的使用权限
  • Centos 5.2下普通权限用户使用Firefox3.0.4无法后退刷新?
  • root帐户使用GCC编译程序时,提示权限不够!!
  • 使用Linux AS4权限设置问题,Chmod 777 目录为什么还是写不进去Session
  • oracle用户权限管理使用详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有谁使用JRun,为何可以运行Servlet,却不能运行jsp?
  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • 在windows下使用虚拟机运行linux,在不插入网线的状态下可不可以使用smb服务
  • redhat ent 4 u4上,如何象readhat ent3 u6版本那样使用top可以查看每个逻辑CPU的利用率以及运行进程的资源使用情况?
  • 怎样在jbuilder中使用命令窗口运行java 程序?
  • UNIX下使用java运行class的问题
  • 我在linux8.0下装了mysql,已经运行进程mysqld,但怎么设置和使用它呢?
  • 使用JavaScript实现的Flash运行环境 Gordon
  • LINUX 下使用QT开发的程序如何才能让它在没有安装QT的Linux系统下运行?
  • 使用信号量如何让父子进程交替运行?
  • 请问LINUX下.so结尾的文件如何运行,或者使用?
  • 在Solaris上使用Motif开发,有什么函数可以得到当前程序运行的目录?
  • 关于Vim的使用问题,怎么让Vim启动时运行某一命令
  • 急!高手帮忙!cximage库在Linux下运行使用的问题。
  • 不解决也给分。如何使用vmware?我的能用vmware运行两个操作系统吗?
  • linux进程(线程)运行过程中如何获取本进程当前的内存使用状况,统计信息?
  • 如何将运行dos的机子联入网络,或在dos下使用网络硬盘
  • 在Solaris下,使用xalan对XML转换时,出现错误,怎么办?同样程序在Windows可正常运行。
  • 在redhat 9下,使用解压包的方式安装QQ for linux--./qq 运行,提示“浮点数例外”,如何解决这个问题呢?
  • busybox中的gzip运行过程中出现page fault错误,并指出出错的指针,但是怎么使用gdb调试,找到指针对应的语句?
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3