SElinuxの理解のために

2025/10/23

SELinuxという同乗者 ― rootの腕をつかむセキュリティ係

rootは万能、でも人間的

Linuxの世界では、root は絶対的な存在です。どんなファイルにもアクセスでき、どんな命令も実行できます。
しかし万能であるがゆえに、危うい瞬間があります。うっかりひとつコマンドを誤れば、システムを壊してしまう。
root は完璧ではなく、人間味を持った強力な管理者です。

SELinuxの登場

そこに登場したのが SELinux。
root の背後に控え、腕をそっとつかんで共に歩く「安全係」です。
彼(あるいは彼女)はこう言います。

> 「そこは system ファイルだから、今のあなた(postfix_t)には触れないわ。」
> 「そのスプール領域は dovecot_t の担当よ。」
> 「root さん、あなたでも、今日はそこはやめておきましょう。」

SELinux は命令を奪わず、横で見守り、ルールから外れる瞬間にだけ静かにブレーキをかけます。

ルールに従う自由

この仕組みを「強制アクセス制御(MAC)」と呼びます。
強制という言葉が堅く聞こえますが、実際には「ルールのある自由」です。
root が行う操作は、すべて *ポリシー* と呼ばれる交通法規に照らして判断されます。
許される範囲では自由に走れる。
ただし、交差点で信号が赤なら進めない。それだけのことです。

ファイルとプロセスの二人三脚

SELinuxの世界では、すべてのものが名札をつけています。
ファイルにも、プロセスにも、「これは誰で、何をしていいか」というラベルがある。
root が新しいプログラムを実行するとき、SELinux はこう言います。
「このプログラムは *postfix_exec_t*、あなた(init_t)が起動するなら *postfix_master_t* として働きなさい。」

まるで人事担当者が社員の役職を割り当てるように、プロセスは任務を与えられて動き出します。

予防的な優しさ

SELinux は攻撃者を追い出す仕組みではなく、

システムを“自ら守らせる”ための内的な安全装置**です。

root ですら例外ではありません。
権限を奪うのではなく、「もう一人の冷静な自分」として行動を監視してくれる。
そのブレーキは、ときに煩わしく感じられるかもしれませんが、
それこそが安心して全速力で走れる理由になります。

一緒に歩く技術

SELinuxを完全に無効にしてしまえば、root は再び孤独な旅人です。
代わりに、「permissive」で練習し、「restorecon」や「semanage」で信頼関係を築けば、
SELinuxは頼れる同乗者になります。
「ここは安全」「ここは危ない」と会話できる関係ができれば、
システム管理はぐっと落ち着いたものになります。

安全と自由の共存

SELinuxは、rootの自由を奪うものではありません。
rootの力を暴走させずに、**自由と安全を両立させるための知恵**です。
危険な時だけ静かに腕を引き、正しい道を示す。
その優しい制約こそ、現代のLinuxが長く走り続けられる理由なのです。