restorecon / chcon の使い方

SELinux のラベルを直す

書き方

sudo restorecon -Rv パス
sudo chcon -t タイプ パス

restorecon は場所に応じた正しいラベルに戻します。mv で持ってきたファイルによく使います。

よく使うオプション

オプション意味
-Rディレクトリの中も下までたどって直す
-v変えたファイルと、前と後のラベルを出す
-n何も変えず、変わるはずのものを見るだけ(-v と一緒に使う)
-Fラベルのタイプ以外(ユーザーやロール)も含めて、すべて規則どおりにする

例

$ sudo restorecon -Rv /var/www/htmlRelabeled /var/www/html/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

Web の公開ディレクトリの中を、場所に合った正しいラベルに戻します。直したファイルが表示されます。

$ sudo restorecon -Rnv /srv/app

-n で、実際には変えずにどれが変わるかだけを確かめます。

$ ls -Z /var/www/html/index.htmlunconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/index.html

直す前と後に、ファイルのラベルを確かめます。4 つ目の部分(httpd_sys_content_t など)がタイプです。

よくある間違い・注意

  • mv で持ってきたファイルは元の場所のラベルのままです。Web サーバーが 403 を返すときは、まず restorecon を試します。
  • 独自の場所(/srv/web など)は規則が無いので、restorecon しても変わりません。先に semanage fcontext で規則を足します。

実際に打って練習する

Linux レベル2 コースの Lv6「印を正す restorecon」で覚えます(第1章 結界(firewalld と SELinux))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、ゴールド以上のプランで遊べます。

Linux サーバー構築のコマンド一覧(LinuC レベル2 の範囲)へ戻る