以root权限运行自己所编译程序的方法

简介:

  这几天照着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()),保持了最小权限原则。

 

注:

(1)实现方法来自于“飞雪待剑” 博客,出处http://jazka.blog.51cto.com/809003/240549

(2)关于chomd u+s:http://blog.sina.com.cn/s/blog_a04184c101010kpk.html



本文转自五岳博客园博客,原文链接:www.cnblogs.com/wuyuegb2312/archive/2013/03/31/2991787.html,如需转载请自行联系原作者

目录
相关文章
|
Unix Linux Shell
Linux执行shell脚本提示文件找不到问题解决办法
Linux执行shell脚本提示文件找不到问题解决办法
911 0
|
4月前
|
Linux Go
在Linux中,文件和目录的权限有何作用以及如何修改?
在Linux中,文件和目录的权限有何作用以及如何修改?
|
5月前
|
Linux 数据安全/隐私保护 iOS开发
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
|
Linux
linux给文件加可执行权限
linux给文件加可执行权限
107 1
|
7月前
|
Linux
如何在 Linux 中递归更改文件的权限?
【5月更文挑战第10天】
151 3
|
6月前
|
机器学习/深度学习 Shell Linux
linux shell脚本判断文件或文件夹是否存在循环操作
linux shell脚本判断文件或文件夹是否存在循环操作
199 0
|
7月前
|
Shell Linux
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
155 1
|
JavaScript 安全 Windows
‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。解决办法
‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。解决办法
shell脚本之---系统用户检查
shell脚本之---系统用户检查
|
Linux
LINUX下用C调用系统命令,并读取执行结果的代码
LINUX下用C调用系统命令,并读取执行结果的代码
122 0