私にとっては、このエラーを引き起こした別のことでした
2つの異なるUIDを持つ同じユーザー名
ユーザー "apache"をUID = 123でローカルに構成し、NISディレクトリに同じ名前( "apache")で異なるUID = 456を設定しています。開始順序とサービスの依存関係によっては、NISユーザーが利用可能になる前にローカルユーザーが使用される場合があります。つまり、ユーザー名を表示すると混乱を招き、どちらも「apache」と表示されます。数値のUIDを見る場合のみ(たとえば、実行ls -ln
すると違いがわかります。例:
[root@mymachine]# ls -l
drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1
drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2
file2のUIDが異なる(123ではなく456)を参照してください):
[root@mymachine]# ls -ln
drwxr-x--- 4 123 48 88 May 31 17:12 file1
drwxr-x--- 4 456 48 88 May 31 17:12 file2
Apache設定で定義された別のグループ
ユーザーの不一致とその結果のアクセス許可エラーで発生した別の問題は、グループ "httpd"を使用してファイルへのアクセスを制限していたときでした。これはユーザー「apache」の主要なグループでした(id
またはを使用して表示されましたgetent
)。Apacheはrootとして起動し、構成されたユーザーに切り替えて権限を削除します。切り替え先のユーザーは/etc/httpd/conf/httpd.conf
、User
パラメーターで定義されます。ここに問題があります-プロセスが実行されるグループ(GID)は、そのユーザーのプライマリグループではありません。グループは、Group
パラメーターによって同じ構成ファイルで定義されます。
したがって、私の場合は(/etc/httpd/conf/httpd.conf)でした:
User apache
Group apache
そして、ディレクトリには次のようなアクセスが許可されています。
drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir
httpd(GID = 444)がそのユーザーのプライマリグループだったため:
[root@somemachine]# id apache
uid=48(apache) gid=444(httpd) groups=444(httpd)
Group
設定ファイルが「httpd」ではなく「apache」であることに気づくまで、デバッグにいくらか時間がかかりました。
/ var / log / httpd / error_logからのエラー:
[Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted
[Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted
[Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt
これがお役に立てば幸いです。