Cent OSのNginxで403 Forbidden ラベル変更

Cent OSのNginxで新規ファイルを作成すると「403 Forbidden」でアクセスできません。
解決方法をご紹介します。ラベル変更が必要なことを知らずに、ハマりました。

環境

  • Cent OS 7
  • Nginx 1.16.1

403 Forbidden

test.htmlファイルを作成します。

# echo "Hello World" > test.html

403 Forbiddenの表示です。
環境によりますが、新規にファイルを作成しても、アクセスすることができないことがあります。

設定状況確認

アクセス権の確認をします。
以下のコマンドで確認できます。

# ls -ltr --context test.html

オプションの詳細は以下になります。
ラベルの確認も必要です。

  • -l : 長いフォーマットで詳細を表示する。
  • -t : ファイルの更新日が新しい順に表示する。
  • -r : 並び順を反転させる。
  • –context : 各ファイルのSELinuxセキュリティコンテキストを表示する。

結果の例です。
同じフォルダの他のファイルも確認し、差分を確認します。

-rwxr-xr-x. nginx nginx unconfined_u:object_r:user_tmp_t:s0 test.html

アクセス権変更

「-rwxr-xr-x」が期待する値になっていない場合、他のファイルを確認してアクセス権を変更します。
chmodコマンドで変更できます。

# chmod 755 test.html

所有者変更

「nginx nginx」が期待する値になっていない場合、他のファイルを確認して所有権を変更します。
chownコマンドで変更できます。

# chown nginx.nginx test.html

ラベル変更

「unconfined_u:object_r:user_tmp_t:s0」が期待する値になっていない場合、他のファイルを確認してラベルを変更します。
chconコマンドで変更できます。

# chcon unconfined_u:object_r:user_tmp_t:s0 test.html

終わりに

ラベル変更が必要な点が抜けやすいのではないでしょうか?
もし、403 Forbiddenでお困りの方は、一度試してみると良いと思います。
Oracleクラウドの永年無償枠を利用して、GUI環境を作る方法もご紹介しているので興味があれば是非お読みください。