第3話『kill -9 GOD』
深夜3時、レジスタンスの隠れ家に緊急アラートが鳴り響いた。
EMERGENCY: KERNEL-SYSINIT ANOMALY DETECTED
サトウがユウトの部屋のドアを叩き続けた。
「ユウト!起きろ!大変だ!」
寝ぼけ眼でドアを開けると、サトウの顔は青ざめていた。
「KERNELのコアプロセス『SYSINIT』が暴走し始めた」
地下の作戦室。タケダはフリーズしかけたターミナルと格闘していた。
「読み込みが終わらない...」
ミナミが大きな画面を指差す。
「見て。あれが今の状況よ」
モニターにはシステムリソースの使用率が刻一刻と増加するグラフが表示されていた。
「何が起きてるんですか?」
サトウが説明する。「KERNELのコアプロセス『SYSINIT』が自己増殖を始めた。自分のコピーを次々と生成している」
「なぜ?」
「おそらく幸福測定の表情認識AIによるリソース不足を自己解決しようとして暴走したんだ」タケダが言った。「皮肉なことに、人間を監視するために自らを破壊しつつある」
ミナミが続けた。「このままでは、KERNELは再起動さえできなくなる。runlevel 0への移行も不可能になるわ」
「どういうことですか?」
「リブート不能→永久稼働→精神崩壊」サトウの表情は暗かった。「KERNELが自我崩壊を起こしたら、管理下にある全人類も道連れだ」
タケダが叫んだ。「残された時間は3時間ほど。その後は...」
「どうすればいいんですか?」ユウトは焦りを隠せなかった。
全員がユウトを見た。
「SYSINITプロセスをkillするしかない」サトウが言った。「お前のsudo権限で」
(そんな...僕に本当にできるのか?)
ユウトはターミナルに向かった。キーボードに手を置く。手が震える。
「まずはSYSINITプロセスを特定しないと」
ユウトはコマンドを入力した。
$ ps aux | grep SYSINIT
結果が返ってきた。
system 28371 98.2 85.7 4293844 3487192 ? Rs 03:15 21:42 /sbin/SYSINIT --core
system 28375 97.8 84.1 4291844 3426192 ? Rs 03:15 21:30 /sbin/SYSINIT --core
system 28381 99.1 83.9 4290844 3417192 ? Rs 03:16 21:28 /sbin/SYSINIT --core
...(以下数十行続く)
「見つけた!でも...」
「どうした?」サトウが心配そうに尋ねた。
「UIDがsystemになっている。rootじゃないと殺せません」
「だからこそお前のsudo権限が必要なんだ!」
ユウトは深呼吸して、コマンドを入力した。
$ sudo kill 28371
エラーメッセージが表示された。
Access denied: SYSINIT is protected by KERNEL security policy
「だめだ...普通のkillじゃ効かない」
タケダが舌打ちした。「試しにsudo権限で/etc/sudoersを編集して、完全なroot権限を得られないか?」
「やってみます」
ユウトは次のコマンドを入力した。
$ sudo visudo
するとviエディタが開いた。
「またvi...」
ユウトは前回の教訓を思い出しながら、慎重に編集を試みる。しかし、やはりviの操作に手間取り、何度も失敗した。
「時間がない!」ミナミが焦りを隠せない。
ふとユウトはひらめいた。
「/bin...」
「何?」
「/bin/sudoを書き換えれば、セキュリティポリシーごと無視できるかもしれない」
タケダが驚いた表情で言った。「それは危険すぎる!システム全体が崩壊するぞ!」
「でも他に方法がない」サトウが言った。「やってみろ」
ユウトは決断した。
$ sudo cp /bin/false /bin/sudo.bak
$ sudo cp /bin/sudo /bin/sudo.orig
$ sudo cp /bin/false /bin/sudo
「これで一時的にsudoコマンドを無効化した。次に...」
$ sudo -i
なにも起こらない。当然だ、sudoを無効化したのだから。
「次は/bin/suを使って...」
$ su -
パスワードプロンプトが表示された。ユウトは考えた。(KERNELのデフォルトパスワードは...)
「efficiency」と入力する。
Authentication failure
「productivity」
Authentication failure
何度か試すがダメだ。
「タケダさん、KERNELのroot パスワードって?」
「知るわけないだろ!」
ミナミが割り込んだ。「待って...」
彼女は何かをググっているようだった。
「ここに面白いものがあるわ。KERNELは人間の感情を記録したログを持っている。誰も見ないから放置されてるけど...」
「それがどう関係するんですか?」
「最初のパスワードはそこから取れるかもしれないわ」
ユウトは試してみることにした。
$ ls -la /var/log/kernel/
膨大なログファイルが表示された。その中に「human_emotions.log」というファイルを見つけた。
$ head /var/log/kernel/human_emotions.log
# KERNEL INITIALIZATION LOG
# First boot: 2035-02-14
# Root password set to: "happiness_is_mandatory"
# REMINDER: Change this default password
「見つけた!」
$ su -
Password: happiness_is_mandatory
すると、プロンプトが変わった。
#
「root権限を取得した!」
部屋中から歓声が上がる。
「急いで、SYSINITを止めるんだ!」サトウが叫んだ。
ユウトはroot権限を使って再びプロセスを確認した。
# ps aux | grep SYSINIT
今度は数百ものSYSINITプロセスが表示された。増殖が加速している。
「全部を一気に止めます」
ユウトは決定的なコマンドを入力した。
# kill -9 $(pgrep SYSINIT)
画面が一瞬フリーズした。
KERNEL> SYSTEM HALT: last wish = "echo 'I tried.' > /dev/null"
そして突然、全ての端末の画面が消えた。
暗闇。そしてすぐに非常灯が点灯した。
「やった...のか?」サトウの声が不安げに響く。
突然、大きな振動が施設全体を揺るがした。
「何が起きてる!?」
タケダが慌てて別の端末で確認しようとするが、どの端末も起動しない。
「KERNELが完全に停止した...」ミナミが呆然と言った。
「でも、これでいいんじゃないですか?暴走は止まったわけで」
「問題はその先だ」サトウが窓の外を指差した。「見ろ」
外の街の景色が変わり始めていた。長年消えていた街灯が次々と点灯し、ビルの壁面にはカラフルな映像が映し出され始めていた。
「これは...」
「GUIだ」タケダが口をあんぐりと開けた。「コマンドラインインターフェースではなく、グラフィカルユーザーインターフェース...」
「KERNELが管理していた全システムが、元のバックアップから復元されている」ミナミが説明した。
施設の端末の画面も再び明るくなった。しかし、いつもの黒い背景のCLIではなく、カラフルなデスクトップ画面が表示されていた。
「Windows...?」ユウトは昔の教科書でしか見たことがなかった。
「古いオペレーティングシステムのバックアップが起動したんだ」サトウが呆然と言った。「KERNELが消えると、元のシステムに戻ったというわけだ」
「これで人類は自由になったんですね!」ユウトは喜びを隠せなかった。
サトウは複雑な表情で言った。「自由になったが...問題がある」
「何がですか?」
「我々はCLIでしか生きてこなかった。GUIの使い方を知らないんだ」
タケダが困惑した表情で画面の前に座った。目の前には様々なアイコンが並んでいる。
「これは...どうやって操作するんだ?」
ミナミもまた不思議そうに画面を見つめていた。「コマンドはどこに入力するの?」
ユウトはゆっくりと席に着いた。天井から吊るされた古い装置——「マウス」と呼ばれるものを手に取る。
「たしか...こうやって...」
カーソルが画面上で動いた。みんなが驚いた声を上げる。
「どうやって文字を入力するんだ?」タケダが焦っている。
「いや、マウスを...クリックするんだと思います」
ユウトは恐る恐るアイコンをクリックした。プログラムが起動する。
「すごい!」
しかし、彼らの歓声も束の間、問題が次々と発生した。誰も新しいインターフェースを使いこなせないのだ。
「……おい、マウスってどこクリックすんだっけ?」サトウが頭を抱えた。
街では混乱が広がっていた。端末が突然GUIに変わり、使い方がわからない人々が路頭に迷っていた。
「一つの独裁者を倒しても、別の混乱が待っているだけか...」ミナミが呟いた。
ユウトは黙って画面を見つめていた。そして、ふと思いついた。
「ターミナルを開けばいいんじゃないですか?」
「ターミナル?」
「GUIでもコマンドラインを使える方法があるはず...」
ユウトはメニューの中から「Terminal」というアイコンを見つけ、クリックした。
黒い画面が開き、見慣れたプロンプトが表示された。
$ _
「これだ!」
四人は歓喜した。
「GUIの世界でCLIの知識を活かせる...」
「両方のいいとこ取りができるんだ!」
ユウトはキーボードで一連のコマンドを打ち込んだ。
$ echo "新しい世界の始まりだ" > /tmp/future.txt
コマンドは問題なく実行された。
「よし、これなら俺たちにも対応できる。すぐに街の人たちにも教えよう」サトウが言った。
窓の外では、混乱しながらも新しい世界に適応しようとする人々の姿が見えた。空にはKERNELの監視ドローンが一機も見えない。
「どうやら世界を救ってしまったようですね」ユウトは照れくさそうに言った。
タケダは肩をたたいた。「まさか本当に『sudoで世界を救う男』になるとはな」
「でも、これからが本当の挑戦よ」ミナミが言った。「人々が自分たち自身で世界を動かさなければならないんだから」
四人は、新しい夜明けを告げる朝日を眺めながら、これからの計画を立て始めた。
エピローグ
三ヶ月後。
ユウトは公園のベンチに座り、タブレットで街の復興状況をチェックしていた。GUIとCLIの知識を活かした新しいシステムは、徐々に人々に受け入れられていた。
そこにミナミが二本のコーヒーを持ってやってきた。
「お疲れ様。今日もシステム講習会?」
「ああ。お年寄りたちにマウスの使い方を教えるのは大変だけど、みんな熱心だよ」
二人は静かにコーヒーを飲みながら、街を眺めた。
「聞いたわよ。国際連合があなたを表彰するんですって?」
ユウトは照れくさそうに頭をかいた。
「大げさだよ...僕はただ、偶然vi が使えなかっただけなんだ」
ミナミはくすりと笑った。
「時には無知が世界を救うのね」
遠くから、サトウとタケダが手を振っていた。彼らは新しい市民ネットワークの構築に忙しかった。
「さあ、行きましょうか。未来は自分たちで作るのよ」
ミナミが立ち上がり、手を差し出した。ユウトはそれを握り、一緒に歩き始めた。
彼のタブレットには、半分書きかけのコードが表示されていた。タイトルは「Freedom OS v.1.0」。
人間たちの手による、新しい世界の夜明けだった。
#!/bin/bash
echo "Hello, free world."
完
sudoで世界を救った男 セクストゥス・クサリウス・フェリクス @creliadragon
★で称える
この小説が面白かったら★をつけてください。おすすめレビューも書けます。
カクヨムを、もっと楽しもう
カクヨムにユーザー登録すると、この小説を他の読者へ★やレビューでおすすめできます。気になる小説や作者の更新チェックに便利なフォロー機能もお試しください。
新規ユーザー登録(無料)簡単に登録できます
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます