1. 程式人生 > >linux下利用C或C++ 語言調用需要root權限的函數

linux下利用C或C++ 語言調用需要root權限的函數

編譯程序 註意 步驟 oot 登錄 調用 get bsp 屬於

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權限的函數