如何让非root用户使用合法端口启动应用

众所周知Linux和其他类Unix系统将端口编号分为两个范围:非特权端口(大于等于1024)和特权端口(小于1024)。

特权端口(小于1024),这些低编号端口通常被分配给重要的网络服务,如HTTP(80)、FTP(21)、SSH(22)等,它们承载着关键的网络通信和对外服务。一般情况下不允许非root用户使用。

但在工作中,root用户在生产环境中,非系统管理员是不能登录系统操作的,但是某一些业务还想使用特权端口(小于1024),此时就需要非root用户来启动该方面的端口了。

下面简单总结了一个方法,可以用安全限制来解决非root用户启动特权端口来使用。此处以80端口为例,该端口恰好位于特权端口范围内,其它特权端也可以产用该方法。

一、使用authbind工具来控制

除用防火墙和sudo来控制之外,可以用authbind包来进行配置

下载authbind_2.1.3.tar.gz安装包,网址地址:SlackBuilds.org - authbind

1.1、编译 & 安装

此处我用的操作系统是CentOS7.6_x64,其它操作系统操作方法基本一致,大家可以根据自己操作系统版本进行微调操作。

把authbind_2.1.3.targz安装包下载好之后,并且也进行了解压,我以是源码编译的方法进行安装的(该软件也支持二制包的使用),可以根据自己的需要进行包的选择。

由于authbind安装包目前基本上都是debian操作系统的包,但大家也不用担心,可以通过修改Makefile来完成源码安装。

[root@test ~]# tar -xf authbind_2.1.3.tar.gz
[root@test ~]# cd ./authbind_2.1.3/work
[root@test ~]# vi Makefile
把 prefix=/usr/local 改成 prefix=/usr

改完之后进行保存,再执行编译和安装即可。

[root@test ~]# make && make install

注:如果在编译有报错,有可以是操作系统缺少某一些包造成,根据报错信息,安装对应的包即可,安装完成之后,再次执行编译和安装即可。

1.2、配置

例如用test这个用户启动一个应用,这个应用想使用80端口。

[root@test ~]# touch /etc/authbind/byport/80
[root@test ~]# chmod 500 /etc/authbind/byport/80
[root@test ~]# chown test /etc/authbind/byport/80

1.3、启动应用

启动命令之前加上:authbind --deep

如果是Nginx:daemon authbind --deep $nginxd -c ${nginx_config}

如果是Java: authbind --deep java ....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值