ソケット権限が777に設定されているにもかかわらず、nginxはソケット失敗エラー(13:権限拒否)を取得しています。

ソケット権限が777に設定されているにもかかわらず、nginxはソケット失敗エラー(13:権限拒否)を取得しています。

ソケットに対する権限を777に設定しましたが、Nginxは引き続きアクセスが拒否されたと言い、サーバーを再起動しました。

Nginxはrootで始まり(最も良い方法ではありませんが、これはまさにそのような方法です。私はこのように設定する人ではありません)、問題のソケットはアプリケーションユーザーが所有します。

重要な場合、ソケットはpuma Webサーバーで実行されているRailsアプリケーション用です。

私が使用しているディストリビューションはRedhatです。

私が見つけたものをフォローしてみました。ここところで走ろうとしたら

grep nginx /var/log/audit/audit.log | audit2allow -m nginx

次のエラーが発生します。

compilation failed:
mynginx.te:6:ERROR 'syntax error' at token '' on line 6:


/usr/bin/checkmodule:  error(s) encountered while parsing configuration
/usr/bin/checkmodule:  loading policy configuration from mynginx.te

私の考えでは、これは私が実行しているコマンドかもしれません。

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

ただし、監査ログを開いて拒否した後もnginx関連のエントリを検索しても、同じエラーが発生します。何も得られず、audit.logにnginx関連のエントリがありません。

別のアプリケーション(同じOS)を使用する別のシステムで同じことをしようとしていますが、同じ問題が再び発生しますが、別の監査ログによると(最終的に私が得た結果は次のようになります)

type=USER_CMD msg=audit(1508924031.284:1165419): user pid=30802 uid=502 auid=502 ses=5121 msg='cwd="/home/user/selinux-nginx-rhel/nginx" cmd=73656D6F64756C65202D69206E67696E782E7070 terminal=pts/0 res=success'

nginxがまだ拒否される理由が表示されたres=success場合

また、このプロジェクトを試すと、audit2allow次のように空のpolicy.teファイルが作成されます。ユーザーの問題もちろん、下線の付いた内容は、私がRHELで実行しているものとは異なる場合があります。

また、SElinuxが実行されているかどうかはわかりませんがgetenforce、doesを返しますDisabled

ソケットの場所を誰でもアクセスできる場所に移動すると問題が解決するため、最終的にこれはユーザー権限の問題だと思います。

ベストアンサー1

私は同じ問題に直面しています。 SELinuxを無効にする必要があります。詳細な手順については、リンクをクリックしてください。

http://blog.odoobiz.com/2017/11/rhel-wsgi-nginx-error-permission-denied.html

おすすめ記事