博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非root用户使用1024以下端口
阅读量:5891 次
发布时间:2019-06-19

本文共 735 字,大约阅读时间需要 2 分钟。

 
如果你有一个最新的内核,确实有可能使用它作为非root用户启动服务,但绑定低端口。最简单有效的办法是:
#setcap 'cap_net_bind_service=+ep' /path/to/program

 执行了该命令后,该文件程序将会具有CAP_NET_BIND_SERVICE功能,setcap在debian软件包libcap2-bin中,至于具体的功能感兴趣可以自己查阅。

现在要注意的是:

  1. 您的内核版本至少为2.6.24

  2.文件不能是脚本。也就是说你必须将CAP_NET_BIND_SERVICE功能应用到可执行文件本身,而不是脚本中指向的其他应用。如果赋予了该文件CAP_NET_BIND_SERVICE能力,其他应用滥用用这个文件就可能在安全性上造成隐患。

  3.如果你的程序使用自己的... / lib /的共享库,而Linux将在任何具有像setcap或suid这样的特权提升的程序上禁用LD_LIBRARY_PATH,将导致不能使用。

 

参考:

LD_LIBRARY_PATH作用 

端口转发、setuid,在root目录下启动应用 

 

应用实例:

nginx配置文件,监听80端口

 

直接在非root用户下启动nginx服务,发现启动不了,提示非root用户没有使用80端口的权利。

使用setcap
在root用户下执行命令:
#setcap cap_net_bind_service=+eip
 
提示:注意文件的颜色变化
 
再次启动nginx服务:
 注:如果不使用了,使用如下命令即可:
#setcap -r 文件名

  

 

转载于:https://www.cnblogs.com/chenjunjie12321/p/9226279.html

你可能感兴趣的文章
wordpress4.5.4 文件上传中文名解决方案
查看>>
在 SELECT 查询中使用表表达式
查看>>
我的友情链接
查看>>
(二) php if语句,switch语句,continue语句,return语句,for 、while、do while 循环
查看>>
Hadoop集群(第7期)_Eclipse开发环境设置
查看>>
ARC 下两种释放对象的方法
查看>>
scala中的continue和break
查看>>
edx 获取当前request
查看>>
亚马逊Kindle将会入华?
查看>>
谁的青春不迷茫
查看>>
flash actionscript 3.0 动画教程:函数之形式参数和实际参数
查看>>
算法导论-分治、最大子序列问题
查看>>
安卓中如何实现滑动导航
查看>>
Java-金额小数转换成中文大写金额
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
squid.3.2故障整理
查看>>
Ansible Tower安装配置全过程(上)
查看>>
地址与引用
查看>>
十大开源ERP点评 献给深水区的中小企业和CIO们
查看>>