Nginx 非Root用户监听1024以下端口

引言

由于安全部门要求,不允许root启动nginx,勒令整改,这里做一下笔记

执行过程

  1. 申请root权限
  2. 找到nginx安装目录
  3. 创建非root用户,如nginx
   useradd
   ```
4. 置nginx目录所有者

```bash
   chown nginx.nginx nginx -R
   ```

   ![image.png](/assets/blog/2024/06/2596740972.png)
5. 修改nginx文件权限

```bash
   setcap cap_net_bind_service=+eip ./nginx
   ```

   ![image.png](/assets/blog/2024/06/417648777.png)
6. 启动服务

# 结果

nginx启动用户为nginx

![image.png](/assets/blog/2024/06/1208123804.png)

监听端口为`80`

![image.png](/assets/blog/2024/06/862819878.png)

# 备注

## 清除所有特权

```bash
setcap -r ./nginx

image.png
不支持80端口启动
image.png

CAP_NET_BIND_SERVICE是什么

CAP_NET_BIND_SERVICE 是 Linux 能力(capability)系统中的一个特定能力。它允许进程绑定到特权端口,特权端口是指端口号在 0 到 1023 之间的端口。在默认情况下,只有 root 用户或具有此能力的进程才能绑定这些特权端口。

评论 0

还没有评论,来说点什么吧。

提交后需要审核才会公开。