Linux普通使用者利用authbind繫結特權埠

fengxiuyaun發表於2015-03-27


在Linux上普通使用者無法繫結1024以下的埠,不過總是會碰到一些特殊情況,比如遇到最多的就是普通使用者程式要監聽80埠,有很多方法可以實現,之前常用的就是使用sudo給予普通使用者一定的許可權,不過總感覺sudo控制起來不是很方便,最近發現ubuntu下面有一款小程式authbind可以實現該功能,且配置起來也方便。  authbind允許程式不使用root許可權來繫結系統1024以下的特權埠,你必須使程式呼叫authbind,authbind會呼叫一些環境變數,來允許你的程式繫結在特權埠。  Ubuntu 12.04安裝authbind  apt-get install authbind  怎樣使用authbind呢?通過配置檔案區域來使用了,預設的配置檔案區域在/etc/authbind目錄下,裡面有三個目錄:byport、byaddr、byuid。  假如我們有個test賬號,想執行一個程式繫結80埠  在byport目錄下建立80檔案:/etc/authbind/byport/80即#touch /etc/authbind/byport/80,設定test賬戶有80檔案的使用許可權,如果80檔案可以被test訪問,則繫結就是成功的,否則繫結就是失敗的。  具體操作:  chmod 755 /etc/authbind/port/80; chown test /etc/authbind/port/80  在你要啟動的命令前加上authbind --deep命令即可。  我們也可以直接在地址上繫結埠,在byaddr下建立ip:port檔案,測試方法如上。也可以在byuid目錄下建立uid檔案,只要你的test賬號可以訪問,否則繫結失敗

相關文章