君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

ババァ!ノックしろよッ!ってならないためのlinuxパーミッション入門

f:id:karoten512:20171223225621j:plain

思春期あるある

思春期を超えたことがあるみなさんなら

共感していただけると思うのですが、

突然親が部屋に来訪してくるとビビりますよね。

やましいことがあってもなくてもビビりますよね。

今回は、

linuxなら、
親が勝手に部屋に入ってこれなくなるので、
安全だよ

という話をしようと思います。

環境を用意する

今回はCentOS7を環境として用意しました。

軽く試したい時、dockerさんにはとてもお世話になっております。。。

$ docker run -it centos:centos7

母ユーザと俺ユーザを作成し、それぞれの部屋を作成

$ useradd haha
$ useradd ore

なお、ここで

$ cat /etc/passwd

とすると、以下のようにユーザが追加されていることがわかります。

ore:x:1000:1000::/home/ore:/bin/bash
haha:x:1001:1001::/home/haha:/bin/bash

また、

$ ls /home
haha  ore

となっており、homeディレクトリにhahaとoreディレクトリが追加されています。

userを追加すると、それぞれのユーザが使える部屋も同時に追加される感じですね。

俺の部屋で怪しい本を生成

$ su ore
$ cd /home/ore
$ touch ayashii_book

俺の部屋に怪しい本をおきます。

母親が俺の部屋に入ろうとすると、、、

$ su haha

ユーザを母親に切り替えます。

$ cd /home/ore
bash: cd: ore: Permission denied

母親は、俺の部屋に入れない!

なぜ部屋に入れないのか

ここでoreディレクトリの

パーミッションを確認してみましょう。

$ ls -la
drwx------. 2 ore  ore  4096 Dec 22 15:48 ore

このパーミッションを図にすると、

以下のようになります。

f:id:karoten512:20171223230537p:plain

つまり、

  • oreディレクトリは、oreユーザに対して、読み、書き、実行を許している

  • 他のユーザに対しては何も許していない

ということになります。

だから、hahaユーザは入ることもできないのです。

やったね!

ディレクトリの場合、

 実行権=そのディレクトリに入れる権利

 であることは覚えておきましょう)

dqn.sakusakutto.jp

どうしたら母が入れるようになるのか

ディレクトリに入れるようにするためには、

このディレクトリに対して、

othersが実行権を持てばよいです。

f:id:karoten512:20171223231650p:plain

実際にやってみましょう。

$ su ore
$ chmod 701 ore
$ drwx-----x. 2 ore  ore  4096 Dec 22 15:48 ore

この701とは何か、ということですが、

これはrwxのパーミッションを数字で表したものになります。

末尾の1が、実行権を表してます。

(こちらについてはまた解説いたします)

$ su haha
$ cd ore

入れました!

しかし、部屋の中に何があるかはみれない

俺の部屋でlsをしてみます。

$ ls
ls: cannot open directory .: Permission denied

なるほど。部屋には入れるけど

中はみれないのか。

今度はothersに読み取り権限を与える

今度は、以下の図のようにします。

f:id:karoten512:20171223231829p:plain

今度はothersに読み取り権限を与えてみましょう。

$ su ore
$ cd /home
$ chmod 705 ore

母親、再来

$ su haha
$ cd /home/ore

f:id:karoten512:20171223232109p:plain

$ ls
ayashii_book

見つかったッ!

※ くだらなくて申し訳ありません

まとめ

このように、

思春期の子供はlinuxでuseraddすれば、

母親が入れないホームディレクトリが生成されるので

健やかな日々を送れると思います。

みなさんも、

パーミッションをうまく利用して快適ライフを送りましょう。