Linux普通用戶利用authbind綁定特權端口
在Linux上普通用戶無法綁定1024以下的端口,不過總是會碰到一些特殊情況,比如遇到最多的就是普通用戶程序要監(jiān)聽80端口,有很多方法可以實現,之前常用的就是使用sudo給予普通用戶一定的權限,不過總感覺sudo控制起來不是很方便,最近發(fā)現ubuntu下面有一款小程序authbind可以實現該功能,且配置起來也方便。
authbind允許程序不使用root權限來綁定系統(tǒng)1024以下的特權端口,你必須使程序調用authbind,authbind會調用一些環(huán)境變量,來允許你的程序綁定在特權端口。
Ubuntu 12.04安裝authbind
- apt-get install authbind
怎樣使用authbind呢?通過配置文件區(qū)域來使用了,默認的配置文件區(qū)域在/etc/authbind目錄下,里面有三個目錄:byport、byaddr、byuid。
假如我們有個test賬號,想運行一個程序綁定80端口
在byport目錄下建立80文件:/etc/authbind/byport/80,設置test賬戶有80文件的使用權限,如果80文件可以被test訪問,則綁定就是成功的,否則綁定就是失敗的。
具體操作:
- chmod 755 /etc/authbind/port/80
- chown test.test /etc/authbind/port/80
在你要啟動的命令前加上authbind --deep命令即可。
我們也可以直接在地址上綁定端口,在byaddr下建立ip:port文件,測試方法如上。也可以在byuid目錄下建立uid文件,只要你的test賬號可以訪問,否則綁定失敗。