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


この記事のゴール

この記事を読めば、

$ ls hoge
d rwx-----x. 1 owner  group 4096 Dec 22 15:48 hoge

この

rwx-----x

が読めるようになる(ハズ)です。

あらすじ

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

苦しんでいるつるがかわいそうだったので、おじいさんは助けてやりました。

その日の夜は大雪になり、とても寒い夜でした。

コン、コン。家の扉が叩かれる音がします。

夜、一人のおんながおじいさんの家にやってきました。

そのおんなは一晩泊めてほしいといいます。

やさしいおじいさんはおんなを家に招き入れることにしました。

家に招き入れた

おじいさんは手元の端末でおんなをlinux userに追加しました。

[root@ie ~]# useradd tsuru

おんながはたを織り始めた

おんなはいろいろ良くしてもらったお礼に、

はた(美しい布)をおりたいといいました。

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

[tsuru@ie ~]$ cd tsuru

といって、おんなはへやにはいっていきました。

おじいさんは好奇心に耐えられなかった

おじいさんは震える手で端末にこう打ち込みました。

[jiisan@ie ~]$ cd tsuru

しかし、

-zsh: cd: tsuru/: Permission denied 

部屋には入れませんでした。

[jiisan@ie ~]$ ls tsuru
drwx------. 2 tsuru   tsuru  4096  3月 27 07:26 2018 tsuru

おじいさん「なるほど。。。こりゃ入れんわい」

おじいさんは納得しました。

なぜ、入れなかったのか

まず、おじいさんがuseraddしたことにより、

tsuruディレクトリが作成されました。

useraddしたときにできるこの部屋の所有者は「tsuru」になります。

ですので、こうなります。

この部屋は、作成された時から以下の要件をみたしています。

・つる[owner]は部屋を自由にする(見れる、いじれる、入れる)ことができる

・おじいさんとおばあさん[other]は入れない

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

もうすこしlinux風に書くとこんな感じです。

※ ディレクトリに対してexecuteは「入れる」ことを表す
※※ ファイルの場合は「実行できる」ことを表す

さらに、linuxのファイルは「所有者」だけでなく「所有グループ」をという情報を持っています。

これにより、

「つるの親族」というグループのユーザだけ部屋に入ることを許可できたりします。

useraddしたときにできる部屋の所有グループは、「tsuru」です。

これで完成です。

ちょっと見方を変えて、、、

ここでlsです!

「owner」ができること

「group」ができること

「other」ができること

をまとめたものを、パーミッションと言います。

おじいさんは強硬手段に出た

中でなにをやっているのか、気になって仕方がありません。

じいさんの秘蔵のこれくしょんが、

つるによって紐解かれていしまっているかも知れません。

3日悩んでおじいさんは決心しました。

「パーミッションを変えよう」

(つづく)

続きを書きました

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