非root用于绑定小于1024的端口

来源:互联网 发布:mac下开发java 编辑:程序博客网 时间:2024/06/05 16:11

在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

阅读全文
0 0
原创粉丝点击