chcon の使い方

SELinux のラベルを直接変える

書き方

sudo chcon -t タイプ パス
sudo chcon -R -t タイプ ディレクトリ

今のラベルだけを書き換えます。restorecon や再ラベルで元に戻るので一時的。ずっと使う場所は semanage fcontext で規則を足して restorecon します。

よく使うオプション

オプション意味
-t タイプラベルのタイプだけを変える(httpd_sys_content_t など)
-Rディレクトリの中も下までたどって変える
--reference=ファイルほかのファイルと同じラベルにする
-v変えたファイルを出す

例

$ sudo chcon -t httpd_sys_content_t /srv/site/index.html

1 つのファイルのタイプを、Web サーバーが読めるものに書き換えます。動くか試すときに使います。

$ sudo chcon -R -t httpd_sys_content_t /srv/site

ディレクトリの中をまとめて書き換えます。

$ sudo chcon --reference=/var/www/html /srv/site

/var/www/html と同じラベルにします。タイプの名前を覚えていなくても使えます。

よくある間違い・注意

  • chcon の変更は一時的です。restorecon やシステムの再ラベルで規則どおりに戻ってしまいます。
  • ずっと使う場所は、semanage fcontext -a で規則を足してから restorecon します。

実際に打って練習する

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

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

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