以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,如需转载请自行联系原作者

目录
相关文章
|
5月前
|
Unix Linux Shell
Linux执行shell脚本提示文件找不到问题解决办法
Linux执行shell脚本提示文件找不到问题解决办法
335 0
|
3月前
|
Shell Linux
linux shell脚本判断当前登录用户是否为root
linux shell脚本判断当前登录用户是否为root
49 1
|
10天前
|
Shell Linux
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
8 1
|
5月前
|
Linux Shell
Linux判断目录是否存在命令,Linux shell 中判断文件、目录是否存在的方法
本文主要介绍了Linux 中 使用 shell 判断文件、目录是否存在的方法,分享给大家
125 0
|
11月前
|
Shell
shell脚本之---系统用户检查
shell脚本之---系统用户检查
|
Shell Linux
LINUX SHELL脚本如何判断一个目录下有没有文件
LINUX SHELL脚本如何判断一个目录下有没有文件
239 0
|
Linux 测试技术
软件测试Linux面试题:将start.sh文件改为可执行权限
软件测试Linux面试题:将start.sh文件改为可执行权限
99 0
|
Unix Shell Linux
在 Linux 中更改用户 Shell 的 3 种方法
shell 是 Unix 和 Linux 操作系统中的命令行界面。它提供了一种通过发出命令和程序与操作系统交互的方式。shell 也称为命令解释器或命令处理器。
2369 0
|
Shell Linux
Linux终端执行shell脚本,提示权限不够的解决办法
[root@bogon ~]# ./start.sh -bash: ./start.sh: 权限不够
867 0
|
Linux 开发工具
9.19 Linux权限对指令执行的影响
通过本章的学习我们知道,权限对于使用者账号是非常重要的,因为它可以限制使用者是否能读取、建立、删除、修改文件或目录。
183 0
9.19 Linux权限对指令执行的影响