使用root權(quán)限運(yùn)行自己所編譯程序的解決方法
這幾天照著UNP上提供的ping源碼編寫(xiě)了一個(gè)用來(lái)學(xué)習(xí)。雖然編譯后能運(yùn)行,但由于使用了原始套接字,必須root權(quán)限運(yùn)行,這與和Linux下真實(shí)的ping有差別:后者是不需要輸入sudo或者切換到#才能運(yùn)行的。linux中的ping源碼沒(méi)有找到,但是看到oschina上有一例自制的ping源碼相似,作者提供的示意圖中在$提示符下沒(méi)有用sudo運(yùn)行的。總之,希望能夠使自己編寫(xiě)的程序以root權(quán)限運(yùn)行而不需要加上sudo或者切換到#提示符。
沒(méi)有找到能在進(jìn)程運(yùn)行時(shí)提升自身權(quán)限的方法,另查到一種方法(來(lái)源見(jiàn)文后注釋?zhuān)┛梢詫?shí)現(xiàn),這兩步缺一不可:
(1)用root權(quán)限完成gcc;
(2)chmod u+s <可執(zhí)行文件>
這時(shí),就能像Linux自帶的ping一樣,無(wú)需sudo或切換至#提示符就能運(yùn)行了。
當(dāng)然,由于UNP上的ping源碼在創(chuàng)建原始套接字后就使用setuid(getuid()),保持了最小權(quán)限原則。
相關(guān)文章
C++類(lèi)與對(duì)象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解
朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對(duì)我們對(duì)C++非常重要的一個(gè)知識(shí)點(diǎn)做出總結(jié),整理出來(lái)一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們?cè)谠u(píng)論區(qū)指出,我們相互學(xué)習(xí),共同進(jìn)步2022-06-06
C++實(shí)現(xiàn)OpenCV方框?yàn)V波的代碼
這篇文章主要介紹了C++ OpenCV方框?yàn)V波的實(shí)現(xiàn),方框?yàn)V波是均值濾波的一種形式,今天通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10
C語(yǔ)言超詳細(xì)講解雙向帶頭循環(huán)鏈表
帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨(dú)存儲(chǔ)數(shù)據(jù)。實(shí)際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個(gè)結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實(shí)現(xiàn)以后會(huì)發(fā)現(xiàn)結(jié)構(gòu)會(huì)帶來(lái)很多優(yōu)勢(shì),實(shí)現(xiàn)反而簡(jiǎn)單2023-02-02
VS2019安裝cbd調(diào)試器的實(shí)現(xiàn)步驟
本文主要介紹了VS2019安裝cbd調(diào)試器的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
C語(yǔ)言 以字符串的形式讀寫(xiě)文件詳解及示例代碼
本文主要介紹 C語(yǔ)言以字符串的形式讀寫(xiě)文件,這里提供了詳細(xì)的資料及簡(jiǎn)單示例代碼以便大家學(xué)習(xí)參考,有學(xué)習(xí)此部分的小伙伴可以參考下2016-08-08
C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析
這篇文章主要介紹了C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針,需要的朋友可以參考下2014-07-07
詳解C語(yǔ)言?xún)?nèi)核字符串轉(zhuǎn)換方法
在內(nèi)核開(kāi)發(fā)模式下,初始化字符串也需要調(diào)用專(zhuān)用的初始化函數(shù),如下分別初始化ANSI和UNCODE字符串,本文我們就來(lái)看看代碼是如何實(shí)現(xiàn)的2022-09-09

