Nginx说open()“ /etc/nginx/conf.d/foo.conf”失败(13:权限被拒绝)


11

这是我所拥有的ls -al /etc/nginx

total 52
drwxr-xr-x.  4 root root 4096 Jul 28 04:16 .
drwxr-xr-x. 78 root root 8192 Jul 28 03:37 ..
drwxr-xr-x.  2 root root   26 Jul 28 03:55 conf.d
drwxr-xr-x.  2 root root    6 May 10 09:21 default.d
-rw-r--r--.  1 root root 1034 May 10 09:21 fastcgi.conf
-rw-r--r--.  1 root root  964 May 10 09:21 fastcgi_params
-rw-r--r--.  1 root root 2837 May 10 09:21 koi-utf
-rw-r--r--.  1 root root 2223 May 10 09:21 koi-win
-rw-r--r--.  1 root root 3957 May 10 09:21 mime.types
-rw-r--r--.  1 root root 1033 Jul 28 03:43 nginx.conf
-rw-r--r--.  1 root root  596 May 10 09:21 scgi_params
-rw-r--r--.  1 root root  623 May 10 09:21 uwsgi_params
-rw-r--r--.  1 root root 3610 May 10 09:21 win-utf

这是我看到/var/log/nginx/error.logsudo service nginx start

[emerg] 20360#0: open() "/etc/nginx/conf.d/foo.conf" failed
(13: Permission denied) in /etc/nginx/nginx.conf:33

这就是我所拥有的ls -al /etc/nginx/conf.d/

$ ls -al /etc/nginx/conf.d/
total 8
drwxr-xr-x. 2 root root   26 Jul 28 03:55 .
drwxr-xr-x. 4 root root 4096 Jul 28 04:16 ..
-rw-r--r--. 1 root root  230 Jul 28 03:50 foo.conf

怎么了?


2
SELinux强制执行?是什么ls -lZ节目?尝试setenforce 0看看是否可行。
yaegashi

确实有setenforce 0帮助。请作为答案提交,我会接受
yegor256

Answers:


19

permission denied由于未知原因而在文件访问等方面出现错误时,它可能与SELinux有关。尤其是当您看到许可权之后的一段时期(例如drwxr-xr-x.,所ls -l涉及的文件/目录的所示)时,它们的标签可能被误贴了(您可以通过看到ls -Z),从而导致了问题。

您应该首先通过运行来检查当前的SELinux模式getenforce。如果显示Enforcing,则Permissive通过运行暂时将模式设置为setenforce 0,然后查看您的应用程序是否正常运行。

请查阅您在SELinux上的发行指南以获取永久性修复,包括在启动时设置SELinux模式,重新标记文件或目录,更新策略等。这是CentOSHowto


2

改变整个SElinux并非总是正确的答案。我不是专家,但是如果无法访问端口,我会将其与禁用防火墙进行比较。

其他快速解决方案可能是“恢复文件的SE上下文”,尤其是从某处复制文件时。

有关更多详细信息,请参见https://www.thegeekstuff.com/2017/05/restorecon-examples/

这些是在禁用SElinux之前值得尝试的命令

sudo restorecon  /etc/nginx/conf.d/
sudo restorecon  /etc/nginx/conf.d/*

这个命令给了我Full path required for exclude: net:[...].
Nakilon

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.