nginx报错 open() failed (13 permission denied)

布满荆棘的人生 2021-09-23 06:08 1102阅读 0赞

一、问题说明

最近在学习nginx,遇到一个问题

在浏览器键入 http://192.168.21.161:1234/video/aaa.mp4

访问虚拟机(191.168.21.161)的nginx资源时报如下错误:

  1. 2019/08/27 03:50:38 [error] 1453#0: *19 open() "/root/video/aaa.mp4" failed (13: Permission denied), client: 192.168.21.1, server: lsc.com, request: "GET /video/aaa.mp4 HTTP/1.1", host: "192.168.21.161:1234", referrer: "http://192.168.21.161:1234/video/aaa.mp4"

这是我的server设置 ,nginx安装目录为/usr/local/nginx

  1. server {
  2. listen 1234;
  3. server_name lsc.com;
  4. location / {
  5. root lsc.com;
  6. index index.html;
  7. }
  8. location /video {
  9. root /root
  10. index aaa.mp4;
  11. }
  12. # 这种写法和上面的匹配的路径是一样的
  13. # location /video {
  14. # alias /root/video
  15. # index aaa.mp4;
  16. # }
  17. location
  18. }

报错很明确,open() “/root/video/aaa.mp4” failed (13: Permission denied),因为没有aaa.mp4的权限,所以无法打开

但是我检查了一下aaa.mp4文件的权限,有读取文件的权限啊,为什么说Permission denied呢?

20190826205636323.png

这个是nginx进程信息

2019082620585357.png

nginx.conf中我没有设置user,nginx启动的用户/用户组就是默认的nobody/nobody

二、解决过程

我在浏览器中访问其实相当于以nobody用户去访问linux上的/root/video/aaa.mp4。

这块权限我没太理解,然后google了下,

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTA5OTk4MDk_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTA5OTk4MDk_size_16_color_FFFFFF_t_70 1

然后,我检查了下/root文件夹,/video文件夹的权限

20190826211955877.png

20190826212016137.png

主要看最后3位(other),video权限没问题(有rx),root都是-,说明没有权限

所以解决方法就是,chmod o+rx /root

等等,不是只要有r的权限就可以了吗,为什么还要加上x?我开始也是这么想的,经过实践发现必须得加x才行(其实上面那段英文回答已经说的很清楚了,这里我想把知识和我以前看过的东西串联起来,又去翻了下之前看过的书)

好几年前我刚接触linux的时候,把电子版《鸟哥的linux私房菜》70%左右章节都看过并实践了。现在想起来当时在看权限那个部分,有一段话,当时没完全理解,所以现在才会产生这样的疑问。我现在把官网(文章链接见文末)上的那一段截个图出来:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTA5OTk4MDk_size_16_color_FFFFFF_t_70 2

解决该问题的关键点:

用户在拥有什么权限的情况下能够读取一个目录下的文件?使用者要对该目录有x权限(也就是能够让该目录成为工作目录,能cd过去),然后还要r的权限

参考链接:

https://stackoverflow.com/questions/50495218/open-root-project-static-css-failed-13-permission-denied-nginx

http://linux.vbird.org/linux_basic/0220filemanager.php#import

https://www.cnblogs.com/chengjian-physique/p/8878410.html

https://www.cnblogs.com/liujiacai/p/8695676.html

https://www.cnblogs.com/zhaof/p/5945576.html

发表评论

表情:
评论列表 (有 0 条评论,1102人围观)

还没有评论,来说两句吧...

相关阅读