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:s0Web の公開ディレクトリの中を、場所に合った正しいラベルに戻します。直したファイルが表示されます。
$ 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))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、ゴールド以上のプランで遊べます。