ファイルパーミッション(file permissions)の考え方 - rwxとowner/group/otherを直感で掴む
パーミッションの文字列が呪文に見えていませんか?
ls -l を打ったら、行頭に -rw-r--r-- みたいな文字列が並んでいて、「これ何の暗号…?」と固まった経験はないだろうか。これが パーミッション(permission) ——ファイルへのアクセス権を表す表示だ。
一見すると呪文だが、実は「誰が」「何をできるか」という2つの軸を並べただけのシンプルな仕組みだ。この記事では、owner / group / other という3者と、rwx(読み・書き・実行)の組み合わせを、ライナとライニー先輩の会話で直感的に整理していく。読み終わるころには、-rwxr-xr-- を見て「ああ、こういう権限か」と一目で読めるようになる。
この記事でわかること
- パーミッションが「誰が」「何を」できるかを決める仕組みであること
owner(所有者)/group(グループ)/other(その他)の3者の意味r(読む)/w(書く)/x(実行)の意味ls -lの先頭10文字の読み方- ファイルとディレクトリで
rwxの意味が変わること 755644のような数字表記との対応
1. そもそもパーミッションは何のため?
結論: パーミッションは「誰がこのファイルに何をしてよいか」を決めるルール。勝手に読まれたり壊されたりするのを防ぐための仕組み。
ls -l したときの行の最初にある -rw-r--r-- って何ですか? ずっと見ないふりしてました…パーミッション=「誰が」×「何を」の表
パーミッションは難しそうに見えるが、たった2つの軸でできている。
- 誰が:
owner/group/otherの3者 - 何を:
r(読む)/w(書く)/x(実行)の3つ
この「3 × 3」の格子さえ掴めば、どんな表示も読み解ける。
2. owner / group / other の3者とは?
結論: パーミッションは3者に分けて設定する。
owner(持ち主本人)/group(同じグループの仲間)/other(それ以外の全員)。
owner(オーナー)、group(グループ)、other(その他)だよ。owner はそのファイルを作った本人、つまり持ち主。group はそのファイルに割り当てられた「グループ」に属する人たち。other はそのどちらでもない、残り全員だよ。owner は書類を作った自分、group は同じチームのメンバー、other は社外の人。同じ書類でも「自分は編集可」「チームは閲覧可」「社外は触れない」と分けたいでしょ。それと同じだよ。| 区分 | 読み方 | 誰のこと |
|---|---|---|
owner |
オーナー / u | ファイルの持ち主本人 |
group |
グループ / g | ファイルのグループに属するメンバー |
other |
アザー / o | 上のどちらでもない残り全員 |
3者は「u / g / o」と略される
chmod などのコマンドでは owner を u(user)、group を g、other を o と略す。a(all)と書けば3者まとめての意味になる。この略記は後で chmod u+x のように使うので頭の片隅に置いておこう。
3. rwx(読む・書く・実行する)の意味は?
結論:
rは読む(read)、wは書く・変更する(write)、xは実行する(execute)。この3つの許可を3者それぞれに与える。
rwx って書いてあるやつ。r は read(読む)、w は write(書く・変更する)、x は execute(実行する)だよ。script.sh を実行したいなら、そのファイルに x が付いていないと動かせない。逆に、ただのメモ帳ファイルに x は普通いらない。| 記号 | 英語 | 意味 |
|---|---|---|
r |
read | 中身を読む / 一覧を見る |
w |
write | 中身を変更する / 追加・削除 |
x |
execute | 実行する / 中に入る |
権限が無いところは - で埋める
rwx のうち許可されていないものは、その位置が -(ハイフン)で表示される。たとえば r-- なら「読むだけOK、書く・実行はNG」。rw- なら「読み書きOK、実行はNG」。- は「ここの権限は無い」という空席のしるしだと思えばいい。
4. ls -l の先頭10文字はどう読む?
結論: 先頭の10文字は「1文字(種類)+ owner の rwx + group の rwx + other の rwx」。3文字ずつ区切って読む。
-rw-r--r-- を読めるようになりたい!- なら普通のファイル、d ならディレクトリ)。残りの9文字を3つに割ると、左から owner の権限・group の権限・other の権限になる。さっきの「誰が × 何を」の格子そのものだよ。-rw-r--r-- を区切って読むと、こうなる。
- rw- r-- r-- ↑ ↑ ↑ ↑ 種類 owner group other
- 先頭
-: 普通のファイル(dならディレクトリ) rw-: owner は 読みr書きw実行なし-r--: group は 読みrのみr--: other も 読みrのみ
つまり「持ち主は読み書きできるが、それ以外の人は読むだけ」という、設定ファイルなどでよく見る権限だ。
実際に確認してみよう。
ls -l memo.txt
-rw-r--r-- 1 lina staff 42 Jun 6 10:00 memo.txt
10文字の読み方テンプレート
- 1文字目:
-(ファイル)かd(ディレクトリ)か - 2〜4文字目: owner(持ち主)の rwx
- 5〜7文字目: group(グループ)の rwx
- 8〜10文字目: other(その他)の rwx
迷ったら「種類・自分・仲間・他人」と唱えながら3文字ずつ区切ろう。
ls -l の3〜4列目もセットで見る
権限の文字列のあとに出てくる lina staff の部分が、その owner 名と group 名だ。-rw-r--r-- が「誰にとっての権限か」は、この所有者・グループ表示と合わせて初めて意味を持つ。権限文字列だけでなく、隣の名前も一緒に見るクセをつけよう。
5. ファイルとディレクトリで rwx の意味は変わる?
結論: 変わる。ディレクトリでは
r=中身を一覧、w=ファイルの追加削除、x=中に入る(cd できる)を意味する。
rwx が付いてますけど、ファイルと同じ意味ですか?r は「箱の中のファイル名を一覧できる」、w は「箱にファイルを足したり消したりできる」、x は「箱の中に入れる(cd できる)」だよ。x が「実行」じゃなくて「中に入る」になるんですね。x が無いと、たとえ中身があっても cd で入れないし、その中のファイルにもアクセスできない。だからディレクトリには x が付いていることが多いんだ。| 権限 | ファイルでは | ディレクトリでは |
|---|---|---|
r |
中身を読む | 中のファイル名を一覧する |
w |
中身を書き換える | ファイルを追加・削除する |
x |
プログラムを実行する | 中に入る(cd)・中身へアクセス |
ディレクトリの x を消すと「中身があるのに入れない」事故になる
ディレクトリから x を外すと、Permission denied で cd できなくなる。「ファイルはあるはずなのに開けない」というトラブルの原因は、ディレクトリ側の x 不足であることが多い。詳しくは Permission denied の直し方 を参照。
6. 755 や 644 みたいな数字は何?
結論:
rwxを数字に置き換えた表記。r=4w=2x=1を足して、owner・group・other の順に3桁で書いたもの。
chmod 755 とか 644 っていう数字も見るんですけど、これは何ですか?rwx を数字で表したものだよ。同じ権限を、文字じゃなく数字で短く書いているだけ。r は4点、w は2点、x は1点。許可されている権限の点数を足すと、その桁の数字になる。rwx なら…?rw- なら 4 + 2 = 6。r-- なら 4 だね。これを owner・group・other の順に3つ並べると 644 みたいな3桁になる。| rwx | 計算 | 数字 |
|---|---|---|
rwx |
4 + 2 + 1 | 7 |
rw- |
4 + 2 | 6 |
r-x |
4 + 1 | 5 |
r-- |
4 | 4 |
--- |
0 | 0 |
だから 644 は rw-r--r--(owner=6・group=4・other=4)、755 は rwxr-xr-x(owner=7・group=5・other=5)を意味する。
chmod 644 memo.txt ls -l memo.txt
-rw-r--r-- 1 lina staff 42 Jun 6 10:00 memo.txt
よく使う2つだけ先に覚えればいい
644(rw-r--r--): 普通のファイル。持ち主は読み書き、他は読むだけ755(rwxr-xr-x): スクリプトやディレクトリ。持ち主は全部、他は読む+実行(=入る)
この2つで日常の大半をカバーできる。数字と記号の細かい使い分けは chmod の数字表記と記号表記 で深掘りできる。
7. 手を動かして確かめるには?
結論: ブラウザ上のターミナルで
ls -lとchmodを実際に打つのが、いちばん速い定着方法。
chmod で権限を変えて、ls -l で表示がどう変わるか目で追うと、一気に腑に落ちるよ。chmod u+x script.sh ls -l script.sh
-rwxr--r-- 1 lina staff 18 Jun 6 10:05 script.sh
u+x(owner に実行権を追加)で rw- が rwx に変わったのが分かる。
Penguin Gym Linux のターミナル で ls -l と chmod を何度も打って、表示がどう変化するかを目で確かめよう。「数字を変える → 文字列が変わる」を体感すると、パーミッションは一気に怖くなくなる。
まとめ
- パーミッションは「誰が」×「何を」できるかを決める仕組み
- 誰が:
owner(持ち主)/group(仲間)/other(その他)の3者 - 何を:
r(読む)/w(書く)/x(実行・ディレクトリは入る) ls -lの先頭10文字は「種類+ owner + group + other」を3文字ずつ- 数字表記は
r=4w=2x=1を足したもの。644と755をまず覚える