linux普通用户启动的进程如何绑定1024以下端口
2018-03-06 20:38
507 查看
问题
在linux中,1024以下端口被称为privileged port,即特权端口。特权端口只能被由root启动的进程监听,该问题常出现在nginx非root启动的场景下(web需要80端口,而非root启动nginx后nginx无法bind 80端口)解决方法
为特定可执行文件赋予绑定特权端口的权限(永久,需要setcap -r清除):setcap 'cap_net_bind_service=+ep' /path/to/program
取消可执行文件可以绑定特权端口的权限
setcap -r /path/to/program
注意
要使用setcap,你的内核版本必须大于 2.6.24如果目标文件是一个脚本,这样做是不行的(执行bind和listen的实际上是脚本解释器)
如果你为一个程序设置了这种权限,那么LD_LIBRARY_PATH对该程序将会失效,如果你的程序依赖它来找到所需要的库,那么你可以考虑使用端口转发了。
参考资料
Is there a way for non-root processes to bind to “privileged” ports on Linux?Unset `setcap` additional capabilities on excutable
相关文章推荐
- Linux下tomcat作为守护进程运行(开机启动、以指定的用户运行、解决非root身份不能绑定1024以下端口的问题)的配置方法
- Linux普通用户使用1024以下端口的问题
- linux普通用户使用1024以下的端口(80)
- linux 普通账户绑定1024以下端口
- linux普通用户使用1024以下的端口(80)
- linux下普通用户如何使用80端口启动程序
- Linux普通用户利用authbind绑定特权端口
- Linux下普通用户获取端口与进程ID的关联
- 如何让 Linux 下非 root 用户程序使用小于 1024 端口
- Linux下配置Tomcat使用普通用户启动Daemon进程
- linux下普通用户如何使用80端口启动程序
- linux下普通用户如何使用80端口启动程序
- nginx赋能普通用户可以使用1024以下端口
- tomcat非root用户启用1024以下端口
- Linux如何查看进程、杀死进程、启动进程等常用命令
- linux如何查看端口被哪个进程占用?
- Linux如何查看进程、杀死进程、启动进程等常用命令
- linux系统无法启动如何进入单用户模式
- Linux如何查看进程、杀死进程、启动进程等常用命令
- Linux如何查看进程、杀死进程、启动进程等常用命令