linux下利用C或C++语言调用需要root权限的函数
生活随笔
收集整理的這篇文章主要介紹了
linux下利用C或C++语言调用需要root权限的函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、setuid法
(1) 登錄root用戶,將程序設置成root:root所有者(等價于:登錄root用戶編譯程序)。也可以直接將普通用戶加入root組中,那么編譯程序不用來回切換用戶。
(2) 登錄root用戶設置程序的UID,# chmod u+s 源文件。
(3) 程序中使用:
uid_t uid = getuid();? ?//普通用戶的uid
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权限的函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell特殊变量:Shell $0,$
- 下一篇: linux 其他常用命令