为什么不用root用户来跑lnmp
很多时候,线上环境的lnmp都不用root来跑。比如nginx单建一个用户,mysql单建一个。代码文件甚至是nobody用户。不是很明白,网上也没相关的解释,只告诉你怎么个原因?有大神给讲解讲解吗!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
很多时候,线上环境的lnmp都不用root来跑。比如nginx单建一个用户,mysql单建一个。代码文件甚至是nobody用户。不是很明白,网上也没相关的解释,只告诉你怎么个原因?有大神给讲解讲解吗!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
安全性考虑。你会发现Linux的服务几乎都不用root身份运行,极少有服务需要root身份的。
设想如果你的php程序使用root运行,万一你的程序有漏洞,被拿到了web shell,那么黑客将直接拥有root权限进入你的系统,想想看这是一件多么可怕的事情。所以你会发现Linux中对外暴露的服务几乎都不用root。
对于Nginx,Apache这种需要bind权限端口的程序来说,它们的做法是使用root运行进程,bind端口,fork进程以低权限账户(如Nginx)提供服务,你仔细看看Nginx的进程树就会发现了
各司其职。比如,你一个公司的小喽啰会知道公司的财务信息吗?你真的需要知道吗?老板会让你知道吗?
为了安全。
往深讲那就是为什么unix,linux 哪怕是 windows 都有不同的用户权限。
原来都是用root用户,后来有漏洞,人家通过漏洞可以查看你整个服务器里面的东西,还可以搞破坏删除。