使用root權(quán)限運(yùn)行自己所編譯程序的解決方法
這幾天照著UNP上提供的ping源碼編寫了一個(gè)用來學(xué)習(xí)。雖然編譯后能運(yùn)行,但由于使用了原始套接字,必須root權(quán)限運(yùn)行,這與和Linux下真實(shí)的ping有差別:后者是不需要輸入sudo或者切換到#才能運(yùn)行的。linux中的ping源碼沒有找到,但是看到oschina上有一例自制的ping源碼相似,作者提供的示意圖中在$提示符下沒有用sudo運(yùn)行的。總之,希望能夠使自己編寫的程序以root權(quán)限運(yùn)行而不需要加上sudo或者切換到#提示符。
沒有找到能在進(jìn)程運(yùn)行時(shí)提升自身權(quán)限的方法,另查到一種方法(來源見文后注釋)可以實(shí)現(xiàn),這兩步缺一不可:
(1)用root權(quán)限完成gcc;
(2)chmod u+s <可執(zhí)行文件>
這時(shí),就能像Linux自帶的ping一樣,無需sudo或切換至#提示符就能運(yùn)行了。
當(dāng)然,由于UNP上的ping源碼在創(chuàng)建原始套接字后就使用setuid(getuid()),保持了最小權(quán)限原則。
相關(guān)文章
C++實(shí)現(xiàn)動(dòng)態(tài)線性表
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)動(dòng)態(tài)線性表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05C語言實(shí)現(xiàn)簡(jiǎn)易網(wǎng)絡(luò)聊天室
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)易網(wǎng)絡(luò)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06OpenCV圖像分割中的分水嶺算法原理與應(yīng)用詳解
這篇文章主要為大家詳細(xì)介紹了OpenCV圖像分割中的分水嶺算法原理與應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01C++動(dòng)態(tài)規(guī)劃計(jì)算最大子數(shù)組
所謂最大子數(shù)組就是連續(xù)的若干數(shù)組元素,如果其和是最大的,那么這個(gè)子數(shù)組就稱為該數(shù)組的最大子數(shù)組2022-06-06