创建普通用户

# 创建用户组
$ groupadd nginx

# 创建普通用户,并添加到用户组
$ useradd nginx -g nginx

# 新用户设置密码(输入密码)
$ passwd nginx

# 切换用户(从权限高的用户,切换到权限低的用户,无需输入密码,反之需要)
$ su - nginx
$ sudo -i -u nginx

步骤一:查询nginx相关信息

  1. 查询nginx安装路径
# 方式2:会查出来很多相关目录(若机器上有安装docker,也会查询出来)
$ find / -name nginx

# 方式1:建议
$ whereis nginx
# 我的安装目录
nginx: /usr/local/nginx /usr/local/nginx/sbin/nginx

  1. 查看nginx目录归属于哪个用户
# 切换到nginx安装路径
$ cd /usr/local/nginx

# 查看nginx目录所属主和所属组是root用户,还是普通用户
$ ll 
# 默认情况下是属于root用户

步骤二:修改nginx启动用户从root改为普通用户

  1. 修改nginx所属主和所属组为普通用户
# 在root用户下执行
# 修改前:nginx目录下所有文件所属主和所属组为 root
# 修改后:nginx目录下所有文件所属主和所属组为 nginx
$ chown -R nginx:nginx /usr/local/nginx
  1. 修改nginx配置文件

# 在root用户下执行
$ vim /usr/local/nginx/conf/nginx.conf

# 注释掉user这行,否则检查配置文件时会报错
#user  nobody;
#user  nginx;
worker_processes  1;
  1. 允许普通用户启动1024以下端口

由于在 linux 下,只有以 root 启动的进程,才能监听小于 1024 的端口。nginx 如果设置了监听 80 或 443 端口,必须得以 root 用户启动,所以为了让普通用户下启动nginx,需允许普通用户可以启动小于1024端口的进程。

# 在root用户下执行
# 设置权限
$ setcap cap_net_bind_service=+eip /usr/local/nginx/sbin/nginx

# 清除附加权限
$ setcap -r /usr/local/nginx/sbin/nginx

# 查看附加权限(显示红色代表允许普通用户运行此程序)
$ getcap /usr/local/nginx/sbin/nginx

  1. 关闭nginx
# 方式1:关闭nginx
$ nginx -s stop

# 方式2:杀死nginx进程
$ kill -9 pid

  1. 以普通用户启动nginx

# 切换到普通用户
$ sudo -i -u nginx

# 以普通用户启动nginx
$ nginx

# 查看nginx启动所属用户
$ ps -ef | grep nginx

# 测试nginx配置是否正常
$ nginx -t

至此,nginx在安装时使用root权限进行安装并启用,如何更改为普通用户权限运行nginx验证完成

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐