読者です 読者をやめる 読者になる 読者になる

[指摘] 「SELinux無効化でカーネルパニック - CentOS6の備忘録」に対する指摘

本日、Twitter(検索: SELinux) を以下のエントリが賑わせていました。

SELinux無効化でカーネルパニック - CentOS6の備忘録

内容に大きな誤りがありますが、コメントが書き込めないようなのでトラックバックを飛ばす形にします。
ぱちさん(?) もしこれをご覧になっていましたら是非修正願います。

尚、今回はあまりにも広まっていたようなので止むを得ずこういう形をとりました。
誤っていることを晒すなどの意図はないことをご理解ください。

誤っている箇所

誤っている箇所は以下の2点です。

  1. /etc/selinux/config の設定に誤りがある
  2. grub の設定に誤りがある
  • (おまけ)grub の設定はレスキューブートを行わなくとも編集できる

/etc/selinux/config の設定に誤りがある

設定ファイルのコメントにある通り、それぞれの項目には以下を設定します。

  • SELINUX=enforcing|permissive|disabled
  • SELINUXTYPE=targeted|mls

該当記事では以下のようになっており、SELINUXTYPE に本来設定されるはずのない disabled が設定されています。
これがカーネルパニックの原因です。*1
SELINUXTYPE ではポリシーセットを指定します。
SELINUX ではそのポリシーセットをどういった状態でブートするかという設定をします。
今回の場合は、「存在しない disabled ポリシーセットを有効な状態で起動する」設定になっています。

SELINUX=enforcing
SELINUXTYPE=disabled      ←ここが間違い

「今まではこれでOKだった。」とありますが、これはよくわかりません。。

正しくは

SELINUX=disabled
SELINUXTYPE=targeted

grub の設定に誤りがある

「kernel行の末尾に"enforcing=0"を追記します。」とありますが、無効にするのであれば誤りです。
「enforcing=0」を指定すると起動時に SELinux の カレントモード を Permissive モード で起動します。

SELinux を無効にするには、「enforcing=0」ではなく「selinux=0」を指定します。

この設定で起動するのかもしれませんが、アレなので未検証です。

(おまけ)grub の設定はレスキューブートを行わなくとも編集できる

起動時のメニュー画面で設定可能です。本筋ではないのでこちらをご覧ください。
E.5. GRUB インターフェース

さらにおまけ: インストール時に SELinux を無効にする。

過去に Fedora 14 をベースに書きました。RH6系 でも同様ですので以下をご覧ください。
Fedora 14 イントール時に SELinux を無効にする(F14) | 2done.org
SELinux の状態を変更する | 2done.org

SELinux についてもっと詳しく知りたい場合は以下をご覧ください。

大雑把ですが、利用する側としての情報はまとめているつもりです。(ど、どうやって張るんだ・・・)
http://www.slideshare.net/ishikawa84g/hbstudy-28-selinuxhandson

*1:今回は現状について書きました。そもそも、設定ファイルのミスでカーネルパニック云々については是非パッチ送ってみるか Bugzilla をご利用ください。