ソケットに対する権限を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