使用root權(quán)限運行自己所編譯程序的解決方法
這幾天照著UNP上提供的ping源碼編寫了一個用來學(xué)習(xí)。雖然編譯后能運行,但由于使用了原始套接字,必須root權(quán)限運行,這與和Linux下真實的ping有差別:后者是不需要輸入sudo或者切換到#才能運行的。linux中的ping源碼沒有找到,但是看到oschina上有一例自制的ping源碼相似,作者提供的示意圖中在$提示符下沒有用sudo運行的。總之,希望能夠使自己編寫的程序以root權(quán)限運行而不需要加上sudo或者切換到#提示符。
沒有找到能在進程運行時提升自身權(quán)限的方法,另查到一種方法(來源見文后注釋)可以實現(xiàn),這兩步缺一不可:
(1)用root權(quán)限完成gcc;
(2)chmod u+s <可執(zhí)行文件>
這時,就能像Linux自帶的ping一樣,無需sudo或切換至#提示符就能運行了。
當(dāng)然,由于UNP上的ping源碼在創(chuàng)建原始套接字后就使用setuid(getuid()),保持了最小權(quán)限原則。
相關(guān)文章
C++類與對象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解
朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對我們對C++非常重要的一個知識點做出總結(jié),整理出來一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學(xué)習(xí),共同進步2022-06-06
VS2019安裝cbd調(diào)試器的實現(xiàn)步驟
本文主要介紹了VS2019安裝cbd調(diào)試器的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12

