思春期あるある
※ 進撃の巨人 予告より
思春期を超えたことがあるみなさんなら
共感していただけると思うのですが、
突然親が部屋に来訪してくるとビビりますよね。
やましいことがあってもなくてもビビりますよね。
今回は、
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
このパーミッションを図にすると、
以下のようになります。
つまり、
-
oreディレクトリは、oreユーザに対して、読み、書き、実行を許している
-
他のユーザに対しては何も許していない
ということになります。
だから、hahaユーザは入ることもできないのです。
やったね!
(ディレクトリの場合、
実行権=そのディレクトリに入れる権利
であることは覚えておきましょう)
[http://dqn.sakusakutto.jp/2011/11/linuxx.html]
どうしたら母が入れるようになるのか
ディレクトリに入れるようにするためには、
このディレクトリに対して、
othersが実行権を持てばよいです。
実際にやってみましょう。
$ 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に読み取り権限を与える
今度は、以下の図のようにします。
今度はothersに読み取り権限を与えてみましょう。
$ su ore
$ cd /home
$ chmod 705 ore
母親、再来
$ su haha
$ cd /home/ore
$ ls
ayashii_book
見つかったッ!
※ くだらなくて申し訳ありません
まとめ
このように、
思春期はlinuxでuseraddすれば、
母親が入れない部屋(ホームディレクトリ)が生成されるので
健やかな日々を送れると思います。
みなさんも、
パーミッションをうまく利用して快適ライフを送りましょう。
参考