【つづき】つるのおんがえしで学ぶLinuxコマンド「決して、この部屋をのぞかないで」〜chmodとchown〜

20180403135544.jpg

この記事のゴール

chmod 705 tsuru
chown root:root tsuru

というコマンドで何を行っているのか、わかるようになる(はず)。

前回の記事

今回の記事は、以下の記事の続きです。

つるのおんがえし「決して、この部屋をのぞかないで」〜LinuxのPermission deniedについて真剣に考える〜

↑ こちらとあわせてご覧くださいませ。

あらすじ

おじいさんが罠にかかっているつるを見つけて、助けてやりました。

夜、一人のおんながおじいさんの家にやってきて、一晩泊めてほしいといいます。

やさしいやさしいおじいさんはおんなを家に招き入れ、

おんなはいろいろ良くしてもらったお礼に、はた(美しい布)をおりたいといいました。

おんな「はたをおりあげるまで、決してのぞかないでください」

しかしおじいさんは、好奇心から部屋をのぞこうとしてしまいます。

つづき

おじいさんは、おんなの部屋の前でしばらくたたずんでいましたが、

決心がついたのか、

おじいさんはおもむろにrootユーザになりました。

[jiisan@ie ~] $ su
パスワード: 
[root@ie ~] #
[root@ie ~] # cd /home

おじいさん「ばあさんや、、、わしの不徳を許しておくれ。。。」

おじいさんは天国にいるおばあさんに言い訳をしながら、

節くれだった手をHHKB (すごく高いキーボード)に走らせます。

[root@ie home] # chmod 705 tsuru

つるの部屋の「パーミッション」を705に変更。

管理者おじいさんは、悲しそうにつぶやきます。

管理者おじいさん「わしはもう、」

[root@ie home] # exit
[jiisan@ie ~] $ cd /home

おじいさん「もどれないのじゃ。。。」

[jiisan@ie home] $ cd tsuru

おじいさんは、ついにおんなの部屋に入ってしまいました。

部屋の中には、おんなではなく美しいつるがいました

そこには、美しい羽を持ったつるが、自らの羽を使って布を織っていました。

おどろきとかなしみの入り混じった表情を浮かべるつる。

つる「私との約束を、破られてしまったのですね。。。」

かなしそうに、つるはつぶやきます。

おじいさん「な、、、なんとおまえさんは、、、」

驚愕の表情を浮かべるおじいさん。

つるは伏し目がちに、真実を告白します。

つる「だまっていてもうしわけありません。実は、私はつr「知っておった」

つる「………え…?」

おじいさん「……知っておったのじゃ」

そのときつるは思い出した

ZtYw4fjT6L5iTEB1523181380_1523181384.png

つる「まさかあなたははじめから……!」

やさしそうな表情から一転、

おじいさんは壮絶な笑みを浮かべました。

おじいさん「どれだけ童話の主人公をやってきたとおもっているのじゃ」

おじいさん「あんたをつると見抜くなど、造作も無いこと」

おじいさんはつるににじり寄っていきます。

おじいさん「お主に与えられた部屋が『tsuru』の時点で気付かないとは」

おじいさん「おろかな、おろかな、つるだこと」

つる「…!」

つるは命の危機を感じました。

つるはとっさに、shellで組んだはた織り機を実行しました。

[tsuru@ie tsuru] $ sh hataori.sh

鋭い鳥の羽根がおじいさんに向かって矢のようにとんでいきます。

その数、数千本。

おじいさん「ちぃっ!」

おじいさんはギリギリのところでそれをよけました。

床をゴロゴロ転がりながら、おじいさんは再びroot userに。

[jiisan@ie ~] $ su
パスワード: 
[root@ie ~] #

lsではた織り機のパーミッションを確認。

[root@ie tsuru] # ls -l
-rw-rw-r-x. 1 tsuru tsuru 0  4月  8 18:09 2018 hataori.sh

管理者おじいさん「ぬるいな」

そのままhataori.shの所有権・グループ・パーミッションを

目に止まらぬ速さで変更してしまいました。

[root@ie tsuru] # chown root:root hataori.sh
[root@ie tsuru] # chmod 700 hataori.sh

あまりの速さに、何が起こったかわからないつる。

再び反撃。はたおり機を実行します。

[tsuru@ie tsuru] $ sh hataori.sh
sh: hataori.sh: 許可がありません

つる「…!」

はたおり機は、動きませんでした。

管理者おじいさん「もうお前さんにできることはなにもない」

管理者おじいさん「鳥かごの中で」

管理者おじいさん「永久にはたを織り続けるが良い」

超高速の指さばき。

ありえない速さで書き換わる、サーバの設定値。

すべてがおわったあと、つるは囚われの身となっていました

[tsuru@ie /] $

つる「え……!?」

つる「どうして、わたしはrootディレクトリにいるの…?」

[tsuru@ie /] $ ls
hataori.sh

つる「でも、はた織り機がある。。。」

[tsuru@ie /] $ cd ..
[tsuru@ie /] $ 

つる「homeディレクトリにいけない…」

つる「まさか…!」

なんということでしょう。

管理者おじいさんはOpenSSHのchroot設定をいじり、

つるをtsuruディレクトリよりも上のディレクトリにいけなくしてしまいました。

これでもう、つるはtsuruの部屋から出ることができません。

つるは何が起こったのか理解した

つる「あなた、なんてことを・・・!」

絶望の声をあげるつる。

管理者おじいさんはつるに背中をむけ、言い放ちます。

管理者おじいさん「おまえさんにはあとで、はた織り機の実行権だけあげよう」

管理者おじいさん「永久に、このtsuruディレクトリではたを織り続けるのだ」

管理者おじいさん「永久にな」

そういっておじいさんは、部屋を出ていきました。

[root@ie tsuru] # cd ..
[root@ie home] # 

その後

背後から甲高い鶴の鳴き声が聞こえましたが、

おじいさんにはもう聞こえていませんでした。

管理者おじいさん「……今回はなかなかてこずったわい」

おじいさんは一息つきました。

そして、おじいさんは、

端末に「ls」と打ち込みました。

[root@ie home] # ls
jiisan baasan tsuru tsuru1 tsuru2 tsuru3 … tsuru979

………そこには大量の「tsuruディレクトリ」が存在していました。

おじいさんはlsの結果をみて、にやりと笑います。

管理者おじいさん「さて、次はどこに罠をしかけようかの」

(おしまい)

解説

おじいさんがつるの部屋に入る前のパーミッションの変更

概要

chmod 705 tsuru

chmodは前回解説した「パーミッション」を変更するコマンドです。

7, 0, 5はなんなの?

では、この7とか0とか5とかの数字は何でしょうか?

これは、「rwx」「---」「r-x」のパーミッションを、数字で表したものです。

Untitled(4) (3).png

どうして7,0,5という数字なのでしょうか?

じつは、r, w, xには以下のように数字が割り当てられていて、

Untitled(4) (2).png

「書ける」&「読める」&「実行できる」という上の状態は、

Untitled(5) (4).png

7、という数字に置き換えることができるのです。

なお、書けない場合は、

Untitled(5) (5).png

5という数字に置き換えることが出来ます。

つまり、こういうことですね。

Untitled(4) (5).png

このことを踏まえると、前回のこの図は、

Untitled(2) (8).png

こうなるわけですね。

Untitled(2) (9).png

chmod 705 tsuru はなんなの?

さきほどの700のパーミッションを

Untitled(2) (10).png

とした、ということですね。

つまり、tsuruディレクトリを

他人が「読めて」「実行できる(入れる)」状態にしたことにより、

他人であったおじいさんもtsuruディレクトリに入ることができるようになりました。

はた織り機を使用不可にしたコマンド

chown root:root hataori.sh
chmod 700 hataori.sh

この2つですね。

chownとは何か

ファイルの所有権・グループを変更するコマンドです。

今回の場合、

Untitled(2) (11).png

つるの所有物だったこのファイルを、

chown root:root hataori.sh

を行い、

Untitled(2) (12).png

完全にrootの所有物にしてしまいました。

これにより、所有者だったつるはotherになってしまい、

otherには書き込み権限がないため、

パーミッションを変更するのが不可能になりました。

chmod 700 hataori.sh

ただし、まだotherには「x(実行権限)」が残っています。

このままではつるにはた織り機を実行されてしまいます。

なので、おじいさんはさらにつづけてchmodを行い、

Untitled(2) (13).png

所有者だけが「読める」「書ける」「実行する」状態になり、

つるははた織り機を実行もできなくなりました。

これでつるは

「パーミッションも変更できない」

「読み取りも書き込みも実行もできない」

という、完全に追い詰められた状態になるわけです。

それでつるは負けてしまったのですね。

まとめ1

だれかに見られたくないファイルや、

実行されたくないファイルがあったときは、

所有権と権限をしっかりと変更しておきましょう。

まとめ2

おじいさんは、

つるをわざと罠にはめ、

恩返ししてきたところをつかまえて

永久にはたを織らせ続けるサイコパス。

備考

chrootについては次回、解説させていただきます。

chroot参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.