nginx使用(非root)普通用户启动

本文介绍如何通过修改Nginx配置文件,使用普通用户而非root启动Nginx,以提高服务器安全性。包括调整监听端口至1024以上,更改用户权限,以及针对CentOS和Ubuntu系统的具体操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用nginx过程中,发现用root用户启动nginx存在在一些安全隐患,经查询,发现nginx默认端口号是80,如果使用使用普通用户启动,只用使用1024以上的端口号,1024以内的端口号只能由root用户启动

1.修改其配置文件
vim /usr/loacal/conf/nginx.conf

server {
	listen 1025; //端口1024以上就行,根据自己情况定义
	server_name www.etiantian.org etiantian.org;//可以写ip,也可以写成一段网址
	location / {
		root html;
		index index.html index.htm;
	}
}

附加:
针对于centos系统

  • 如果nginx是以root用户装的
  • 使用chown命令修改nginx用户权限
  • 把nginx相关的文件夹改成普通用户
  • 比如:chown greatwall /usr/local/*

针对于ubuntu系统(在麒麟系统上测试过)

赋权greatwall 用户
chown greatwall /var/log/nginx
chown greatwall /var/log/nginx/*
chown greatwall /etc/nginx
chown greatwall /etc/nginx/*
chown greatwall /etc/nginx/conf.d/*
chown greatwall /usr/sbin/nginx
chown greatwall /var/cache/nginx
mkdir /var/run/nginx
chown greatwall /var/run/nginx

vi /etc/nginx/nginx.conf
#pid        /var/run/nginx.pid;
pid        /home/nginxrun/nginx/nginx.pid;

vi /etc/nginx/conf.d/default.conf
#listen       80;
    listen       18010;
root用户启动Nginx服务可以通过多种方式实现,每种方法都有其适用场景和优缺点。 ### 使用 `setuid` 一种方法是利用 `setuid` 机制,这允许一个程序以文件所有者的身份运行。尽管这种方法可以让普通用户启动Nginx服务,但需要注意的是,最终Nginx的主进程仍然会以root权限运行。这意味着虽然启动过程不需要sudo权限,但Nginx的实际运行仍然依赖于root权限。可以通过以下命令查看Nginx进程的运行状态: ```bash ps -ef | grep nginx ``` 你会注意到Nginx的主进程确实是运行在root权限下的[^1]。 ### 使用 `setcap` 另一种方法是使用 `setcap` 命令来赋予Nginx二进制文件特定的能力,使得root用户可以运行Nginx并监听低于1024的端口。具体步骤包括: 1. 给Nginx二进制文件添加网络绑定能力: ```bash setcap cap_net_bind_service=+ep /usr/local/openresty/nginx/sbin/nginx ``` 2. 修改Nginx安装目录的用户权限,以便特定用户能够访问这些目录: ```bash sudo setfacl -m u:用户名:rwx -R /usr/local/openresty sudo setfacl -m g:用户名:rwx -R /usr/local/openresty ``` 3. 切换到目标用户启动Nginx服务: ```bash sudo su 用户名 bin/openresty ``` 这种方法的好处在于不需要将整个Nginx服务以root权限运行,仅赋予必要的权限[^2]。 ### 自定义安装路径 对于希望完全在root环境下管理和运行Nginx的情况,可以选择自定义安装路径。例如,在用户的家目录下安装Nginx,并指定PCRE和Zlib库的位置: ```bash cd nginx-1.16.1/ ./configure --prefix=/home/wlf/nginx --with-http_stub_status_module --with-pcre=/home/wlf/pcre-8.43 --with-zlib=/home/wlf/zlib-1.2.11 ``` 这种方式提供了更高的灵活性,同时也确保了环境的隔离性,适合开发和测试环境[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值