程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 使用root權限運行自己所編譯程序的解決方法

使用root權限運行自己所編譯程序的解決方法

編輯:C語言基礎知識

  這幾天照著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. 下一頁:
Copyright © 程式師世界 All Rights Reserved