非root用於綁定小於1024的端口

在Linux下,默認端口1024下的程序是要在root下才能使用的,在其他用戶下,如果嘗試使用將會報錯。在有的時候,我們可能考慮程序運行在root帳戶下,可能會給Linux系統帶來安全風險。那如何能夠讓非root用戶運行的程序能夠對外啓用小於1024的端口呢

一種方式是:CAP_NET_BIND_SERVICE

從2.1開始,Linux內核有了能力的概念,這使得普通用戶也能夠做只有超級用戶才能完成的工作,這包括使用端口1。
獲取CAP_NET_BIND_SERVICE能力,即使服務程序運行在非root帳戶下,也能夠binding到低端口。使用的方法:
#設置CAP_NET_BIND_SERVICE setcap cap_net_bind_service =+ep /path/to/application

Note: 1. 這個方法並不是所有Linux系統通適,內核在2.1之前的並沒有提供,因此你需要檢查要使用此方法所在系統是否支持(Linux must support capacity);

eg:

setcap 'cap_net_bind_service=+ep'  /usr/sbin/grafana-server

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章