パーミッションのお勉強

LPICのお勉強中です。パーミッションについての理解が足りないので、パーミッション(アクセス権)についてまとめます。

所有者について

  • ファイルやディレクトリを作成すると、「作成したユーザー」がファイルの所有者として設定される。
  • 同時に、所有者の「プライマリグループ」が、ファイルやディレクトリのグループとなる。
  • 所有者、所有グループを確認するときは、ls -al

access_testディレクトリとhello.txtを作って、ls -alしてみます。

% mkdir access_test
% echo 'Hello!!' > access_test/hello.txt
% ls -al access_test
total 16
drwxr-xr-x 2 tanaka tanaka 4096 Jan  7 18:29 ./
drwxr-xr-x 5 tanaka tanaka 4096 Jan  7 18:28 ../
-rw-r--r-- 1 tanaka tanaka    8 Jan  7 18:29 hello.txt

lsの読み方

drwxr-xr-x 2 tanaka tanaka 4096 Jan  7 18:29 ./

を読むと、

d ディレクトリ(ファイルの場合-)
rwxr-xr-x アクセス権
2 ハードリンク数(./と../)
tanaka 所有者
tanaka 所有グループ
4096 ファイルサイズ
Jan 7 18:29 最終更新日時
./ ファイル名

こんな感じ。

アクセス権の読み方。

今回はアクセス権(パーミッション)なので、rwxr-xr-xを詳しく。

rwx r-x r-x

左から3こづつ所有者(user),所有グループ(group),その他のユーザー(other)

rwxはこう読む。

r 読み取り権
w 書込み権
x 実行権

で、ここからがイマイチだったところ。

ファイルのアクセス権

ファイルのアクセス権はこんな感じ。

r ファイルを読み取ることが可能
w ファイルを変更することが可能
x ファイルを実行することが可能

ファイルにwが付いてても、ファイルを削除することは出来ない。LPICの教科書間違ってるし・・・。

ディレクトリのアクセス権

イマイチ微妙だったとこ

r ディレクトリ内のファイルを一覧表示出来る(ls出来るか)
w ディレクトリ内のファイルを作成、削除出来るか(touch,rm出来るか)
x ディレクトリ内のファイルにアクセス出来るか(cd出来るか)
  • wが付いていれば、ファイルの書込み権が無くても削除は可能。

ファイルと同じような感じなんだけど、イマイチ直感的でないのが「x」。実行って感じがしない。

ディレクトリの実行権について

実行権エクスプローラーで言う所のダブルクリック。ダブルクリック=実行権と考えて良さそうだ。つまり、ディレクトリの実行権はアクセス権である。

ディレクトリのxが付いてないと、ディレクトリのアクセス権がないので、ディレクトリ以下のファイルに対する操作(作成、削除、読み取り、変更、実行)は全く出来ない。

また、公開したいファイルがある場合、再帰的にディレクトリにxを付けておかないと公開出来ない。

HOMEに関しては、xが付いてないので、

% ls -ld ~
drwx------ 93 tanaka tanaka 4096 Jan  8 13:07 /home/tanaka/

初期設定では僕以外見ることが出来ないようになってる。

理解した!!

まとめ

ディレクトリのx重要。今まで勘違いしてた(汗

その他に、chmodの使いかた、SUID,SGID,スティッキービット、デフォルトのアクセス権、ファイルの拡張属性、ACL等が重要どころ。

マルチユーザーなLinuxはやっぱすげぇよ。