web-dev-qa-db-ja.com

ソケットのアクセス許可が777に設定されているにもかかわらず、ソケットのnginxエラーが失敗しました(13:アクセス許可が拒否されました)

ソケットのアクセス許可を777に設定しましたが、Nginxはアクセス許可が拒否されていると言い続け、サーバーを再起動しました。

Nginxはrootとして開始されており(最善の方法ではありませんが、それはそのままで、私はこのように設定した人ではありません)、問題のソケットはアプリのユーザーが所有しています。

重要な場合、ソケットはpumaWebサーバーで実行されている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に関連するものを検索した後、または拒否された後も、何も表示されません。nginxに関連するaudit.logには何もありません。

別のアプリ(同じ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'

res=successが表示されている場合、なぜnginxがまだ拒否されているのですか?

また、このプロジェクトでaudit2allowを試すと、このような空のpolicy.teファイルがこのように表示されます ユーザーの質問 もちろん、下線が付いているケースは、おそらく私が実行しているものと同じではありませんRHEL。

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

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

3
Thermatix

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

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

1
dirtyhandsphp