码迷,mamicode.com
首页 > 编程语言 > 详细

linux下利用C或C++ 语言调用需要root权限的函数

时间:2018-10-11 22:00:08      阅读:450      评论:0      收藏:0      [点我收藏+]

标签:编译程序   root   其他   app   设置   linux   权限   恢复   root权限   

1、setuid法
(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序)。也可直接将普通用户加入root组中,那么编译程序不用来回切换用户。
(2)登录root用户设置程序的UID,#chmod u+s App。
(3)程序中使用:

     uid_t uid = getuid();  
     if (setuid(0)) {
     return -1;
     }
//...
if (setuid(uid)) { //恢复uid
}
通过上面步骤则该用户不管在普通用户还是在root用户下都能获取root权限。
注意:

(1)复制时要想连同其UID位一同复制,cp加参数-a,scp加参数-p。

(2)若复制到其他Linux主机上要保证程序属于root:root所有者。

linux下利用C或C++ 语言调用需要root权限的函数

标签:编译程序   root   其他   app   设置   linux   权限   恢复   root权限   

原文地址:https://www.cnblogs.com/runlgs/p/9774566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!