這幾天照著unp上提供的ping原始碼編寫了乙個用來學習。雖然編譯後能執行,但由於使用了原始套接字,必須root許可權執行,這與和linux下真實的ping有差別:後者是不需要輸入sudo或者切換到#才能執行的。linux中的ping原始碼沒有找到,但是看到oschina上有一例自製的ping原始碼相似,作者提供的示意圖中在$提示符下沒有用sudo執行的。總之,
希望能夠使自己編寫的程式以root許可權執行而不需要加上sudo或者切換到#提示符。
沒有找到能在程序執行時提公升自身許可權的方法,另查到一種方法(**見文後注釋)可以實現,這兩步缺一不可:
(1)用root許可權完成gcc;
(2)chmod u+s 《可執行檔案》
這時,就能像linux自帶的ping一樣,無需sudo或切換至#提示符就能執行了。
當然,由於unp上的ping原始碼在建立原始套接字後就使用setuid(getuid()),保持了最小許可權原則。
注:(1)實現方法來自於「飛雪待劍」 部落格,出處
(2)關於chomd u+s:
以root許可權執行自己所編譯程式的方法
這幾天照著unp上提供的ping原始碼編寫了乙個用來學習。雖然編譯後能執行,但由於使用了原始套接字,必須root許可權執行,這與和linux下真實的ping有差別 後者是不需要輸入sudo或者切換到 才能執行的。linux中的ping原始碼沒有找到,但是看到oschina上有一例自製的ping原始碼...
Ubuntu UI 以root許可權執行某個程式
之前在ubuntu中安裝了wireshark,這個程式必須用root許可權才能對某個介面抓包,就一直是在終端 sudo wireshark 來執行.最近在網上看到一種方法,在面板處新增乙個快捷方式,然後將其屬性修改一下,以後每次點選該圖示就會提示輸入sudo密碼,就可以直接以root方式開啟了.實際...
Manjaro設定開機以root許可權執行自定義指令碼
背景 前段時間把筆記本搞成雙網絡卡,同時上內外網,每次開機都要手動設定路由,十分不方便,所以就考慮開機自動設定,但是設定route需要su許可權,所以記錄一下實現方法 sudo pacman sy systemd rc local sudo systemctl enable rc local.ser...