博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于nginx启动权限错误
阅读量:6040 次
发布时间:2019-06-20

本文共 1172 字,大约阅读时间需要 3 分钟。

在使用nginx -t检查nginx配置文件时出现这个错误:

$ /usr/local/nginx/sbin/nginx -tnginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /usr/local/nginx/conf/nginx.conf:2复制代码

nginx的所有者是root

我们都知道nginx的主进程需要使用root来运行,而子进程可以使用普通用户运行,
普通用户如果不使用sudo命令运行nginx时则需要获取SUID权限才能在nginx运行时将身份切换为root,否则就是用自己的身份来执行nginx,而恰巧在这个nginx.conf文件中设置了ssl的证书的放置位置在一些普通用户不能读取的位置或者一些普通用户不能读取的目录,所以出现了权限的错误.
解决的方法我总结了两种,一种是使用sudo来运行nginx,另一种是给nginx赋予SUID权限,让普通用户在执行nginx时将身份提升为nginx的所有者也就是root

1.使用sudo

$ sudo /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful复制代码

2.给nginx赋予SUID权限

$ sudo chmod u+s /usr/local/nginx/sbin/nginx//或者$ sudo chmod 4755 /usr/local/nginx/sbin/nginx$ ll /usr/local/nginx/sbin/nginx-rwsr-xr-x 1 root root 8641260 Sep  7 14:33 /usr/local/nginx/sbin/nginx复制代码

但是由于SUID权限是linux中比较危险的一种程序,假设要执行的程序的所有者是root,那么任何非sudo用户都可以在运行这个程序的时候身份都变为了root,所以这个程序可以让任何人以root身份执行,有点心里慌慌.

还是用sudo执行好一些吧,至少只有在sudoers列表中的用户才能以root权限执行,还必须在命令前敲sudo来提醒一下自己,感觉安全性是提高了不少.

转载于:https://juejin.im/post/59c0c829f265da065476c5aa

你可能感兴趣的文章
Sql注入、文件上传与手机品牌信息抓取解决方案
查看>>
SQLServer跨库查询--分布式查询[转载]
查看>>
django错误-NoReverseMatch at /admin/
查看>>
Laravel中的信息验证 和 语言包
查看>>
折半查找法(二分查找 java版)
查看>>
工作两周年—--个人知识体系梳理
查看>>
win2003开启telnet
查看>>
php配置文件php.ini中文详解
查看>>
关于Tomcat配置相关总结
查看>>
安装PDO_MYSQL遇到的问题:error: Cannot find MySQL header files under
查看>>
CocoaPods最新安装及跳过pod setup快速安装教程
查看>>
必须用C模拟OS?
查看>>
JavaScript引入
查看>>
ARM9代码分析启动MAIN.C
查看>>
JSON
查看>>
4.3 Verilog练习(2)
查看>>
浅谈html5某些新元素的用途
查看>>
csv文件的操作
查看>>
基本调试命令 - u/ub/uf
查看>>
实现锁的多种方式和锁的高级用法
查看>>