えへへ…
お兄ちゃんがいない間に
/home/shigeru を覗いてみよう!
ls /home/shigeru
ls: cannot open directory '/home/shigeru': Permission denied
実は特別なことをしなくてもファイルやディレクトリが守られているんだ
わぁ!ごめんなさい!
今回は「所有権(ownership)」と 「パーミッション(permission)」の 二つを学ぼう!
…えっ?「所有権」と… 「パーミッション」?
まずは「所有権」から見ていこう これはファイルの所有者を表している概念なんだファイルすべてに設定されているよ
ファイルに所有者が設定されていたんだ?!
/home 以下のディレクトリを確認しようただし ls の -l オプションを指定してねls -l /home
名前だけじゃなく色々な情報を表示するオプションだったよね!
total 5
drwx------. 9 midori midori 4096 Dec 28 20:48 midori
drwx------. 9 shigeru shigeru 4096 Dec 25 12:15 shigeru
midori ディレクトリの追加情報にmidori って私の名前が2回出てるけどこれは何かな?これらが「所有権」を表しているよ 1つ目は所有ユーザ2つ目は所有グループなんだ
次にこの部分を見てごらん
drwx------
えーっと…これは何?
これは「パーミッション」という ファイル操作の許可を表しているんだ
最初の
d はディレクトリであることを示しているんだでもそれ以外の部分が重要なんだ
重要なのは…後ろの9文字?
rwx------
この9文字は3文字ずつに区切って考えるんだ最初の3文字は所有ユーザ次の3文字は所有グループ最後の3文字はその他のユーザつまり他人に対する許可を表しているよ
3文字ずつか…なるほど…
rwx --- ---
それぞれの文字は以下を表しているよ
| 文字 | 意味 |
|---|---|
r | 読み込み(read) |
w | 書き込み(write) |
x | 実行(execute) |
- | 許可がない |
ファイルの場合はそれをプログラムとして実行できるという意味だよ
ディレクトリの場合は意味が違っているんだディレクトリの中身を調べたりアクセスできることを意味しているよ
ディレクトリの「読み込み」と「実行」の 違いがよくわからないね…
両者は厳密には違うんだけど現時点では以下のように両方同時に指定すると覚えておこう!
| ディレクトリへのアクセス | 指定 |
|---|---|
| 許可したい | |
| 拒否したい |
うーん…ちょっと難しいけど整理すればわかるかも
じゃあ一緒に
rwx------の部分を見てみようrwx------
rwx --- ---
最初の
rwx は所有ユーザの権限を表しているんだrwx
つまり midori ユーザは「読み」「書き」「実行」を 自由にできるというわけだね
自分のディレクトリだから何でもできるという設定なんだ!
次の
--- は所有グループの権限だね---
これは「何も許可されていない」 ことを示しているんだ
midori ユーザ本人じゃないとmidori グループに所属していても何の権限もないことになるんだね!そして最後の
--- は他人に対する権限だったね---
所有グループと同じく何も許可していないねつまり僕みたいなユーザに対して何も許可していないという設定になっているよ
そういうことなんだ!だから私が
/home/shigeru を覗こうとしたとき実行や読み込み権限が無くてPermission Denied って出たんだね今回は「所有権」と 「パーミッション」を学んだよ! ファイルやディレクトリの操作を制限して必要の無いユーザに内容を読まれたり中身を書き換えられたりするのを防ぐ大事な仕組みなんだよ!
いろんなファイルやディレクトリで
ls -l を試して読み方を練習しておこう!最初のうちは難しく感じるけど慣れればすぐ読めるようになるよ!