linux 普通用户如何运行nginx
·
创建普通用户
# 创建用户组
$ groupadd nginx
# 创建普通用户,并添加到用户组
$ useradd nginx -g nginx
# 新用户设置密码(输入密码)
$ passwd nginx
# 切换用户(从权限高的用户,切换到权限低的用户,无需输入密码,反之需要)
$ su - nginx
$ sudo -i -u nginx
步骤一:查询nginx相关信息
- 查询nginx安装路径
# 方式2:会查出来很多相关目录(若机器上有安装docker,也会查询出来)
$ find / -name nginx
# 方式1:建议
$ whereis nginx
# 我的安装目录
nginx: /usr/local/nginx /usr/local/nginx/sbin/nginx
- 查看nginx目录归属于哪个用户
# 切换到nginx安装路径
$ cd /usr/local/nginx
# 查看nginx目录所属主和所属组是root用户,还是普通用户
$ ll
# 默认情况下是属于root用户
步骤二:修改nginx启动用户从root改为普通用户
- 修改nginx所属主和所属组为普通用户
# 在root用户下执行
# 修改前:nginx目录下所有文件所属主和所属组为 root
# 修改后:nginx目录下所有文件所属主和所属组为 nginx
$ chown -R nginx:nginx /usr/local/nginx
- 修改nginx配置文件
# 在root用户下执行
$ vim /usr/local/nginx/conf/nginx.conf
# 注释掉user这行,否则检查配置文件时会报错
#user nobody;
#user nginx;
worker_processes 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
- 关闭nginx
# 方式1:关闭nginx
$ nginx -s stop
# 方式2:杀死nginx进程
$ kill -9 pid
- 以普通用户启动nginx
# 切换到普通用户
$ sudo -i -u nginx
# 以普通用户启动nginx
$ nginx
# 查看nginx启动所属用户
$ ps -ef | grep nginx
# 测试nginx配置是否正常
$ nginx -t
至此,nginx在安装时使用root权限进行安装并启用,如何更改为普通用户权限运行nginx验证完成
更多推荐

所有评论(0)