Centos

Nginx 說 open() ‘/etc/nginx/conf.d/foo.conf’ failed (13: Permission denied)

  • December 3, 2019

這是我所擁有的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.log之後看到的sudo 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

怎麼了?

當您permission denied因未知原因在文件訪問等方面遇到錯誤時,可能與 SELinux 有關。特別是當您看到有問題的文件/目錄drwxr-xr-x.顯示的權限後有一段時間時ls -l,它們可能被錯誤標記(您可以通過 看到ls -Z)並導致問題。

您應該首先通過執行檢查目前的 SELinux 模式getenforce。如果顯示,則通過 runningEnforcing暫時將模式設置為,然後查看您的應用程序是否正常工作。Permissive``setenforce 0

請查閱您發行版的 SELinux 指南以獲得永久修復,包括在啟動時設置 SELinux 模式、重新標記文件或目錄、更新策略等。這裡是CentOS 的 Howto

引用自:https://unix.stackexchange.com/questions/218747