2024年Linux最全运维排查篇 访问nginx出现403错误(2

文章讲述了在处理Apache权限问题时,作者提供了两种改进方案:一是以root用户运行Apache,二是修改Nginx启动文件的SUID属性。强调了系统化学习的重要性以及团队合作对于技术提升的价值。
摘要由CSDN通过智能技术生成

图片

在我最初的文章中,我提供的解决办法是将 nginx 的工作用户修改为 root,跟启动用户一致,这样就能解决权限问题,但是这样会产生安全隐患

一旦黑客入侵了80端口,那么他就拥有了 root 权限,所以不建议修改工作用户为root

那么有没有更好的办法呢?在工作用户不是 root 用户的前提下还能使得 nginx 用户可以启动 master 进程

图片

这天早上,我在上班路上看着这本书,突然看到书上有个案例吸引了我,我大致讲一下

错误现象:客户的一台web服务器是基于Apache+JK+Tomcat构建的一个电商平台,客户反映Apache无法启动,但是Tomcat可以启动。并且发现是权限问题导致

作者经过排查后,发现Apache的启动用户是www,监听端口为80,并查到/usr/local/apache2目录所有文件和目录权限都是www,不是读写权限的问题。

最后定位到是Apache的工作用户是www,无法使用80端口,linux做了一些安全限制,使得普通用户无法绑定这类端口

根据定位到的问题,这里有两个解决方法

  • 将Apache以 root 用户运行,简单粗暴
  • 修改Apache目录下httpd文件的SUID属性

看到这里,我突然想到跟我之前写过的一篇案例中出现的问题有异曲同工之妙,于是有了今天这篇2.0版本

解决方法2.0

上文我说过:有没有更好的解决方法,使得工作用户为 nginx 的前提下还能正常启动 master 进程

除了我一开始写的修改工作用户为 root 之外,现在有更好的方法,那就是:

修改nginx目录下启动文件的SUID属性

我们先来看下如何操作

首先将nginx启动程序赋予s权限

chmod u+s /usr/local/nginx/sbin/nginx

接着将该文件的所有者改为 root

chown root /usr/local/nginx/sbin/nginx

这样就成功解决啦!

看到这里,可能有些小伙伴已经一脸懵逼了,这个SUID属性是啥,s权限又是啥

接下来我们简单介绍下linux系统中的特殊权限

Linux系统中的文件的s权限

我们在linux系统中最常见的文件权限分别是:r、w、x,分别对应着读、写、执行权限,这三个权限相信大家都懂了,这里就不过多介绍。

除此之外,linux还支持另外一系列的权限设置,就比如上文所介绍到的 s 权限



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值