755とrwxr-xr-xを行き来する手順|ls -lの行も読む
パーミッションの数字と記号を行き来する手順をまとめました。ls -l の行をそのまま貼る方法、ファイルとディレクトリで w の意味が変わること、chmod の記号指定を打つ前に結果を見る方法、s と S の違いまで、画面を追いながら書いています。
公開読了目安 約4分
この記事の要点
- 数字も記号もls -lの行もそのまま読める
- 桁の内訳が4+2+1の足し算で出る
- ファイルとディレクトリで説明文が変わる
- 記号指定は打つ前に結果を確かめられる
- 大文字のSとTは実行ビットが無い印
目次
権限まわりの数字は、見た目のわりに読み替えが面倒です。755 と rwxr-xr-x が同じものだと知っていても、手元で足し算をやり直すことになります。
その行き来をまとめて済ませるのがchmodパーミッション計算です。数字でも記号でも、ls -l の行そのままでも読み取ります。
桁の内訳が足し算のまま出る
入力欄に 755 と入れると、上に 4 つの読み方が並びます。4 桁の 0755、3 桁の 755、記号の rwxr-xr-x、ls -l 形式の -rwxr-xr-x です。
その下に、所有者・グループ・その他の 3 行が出ます。

7 が 4 + 2 + 1 の足し算として出るので、どの数がどの権限に当たるかを覚え直さずに済みます。読みが 4、書きが 2、実行が 1 です。
1 桁だけ書いたときは右詰めになる
chmod 7 と打つと、権限が付くのは所有者ではありません。桁は右から その他・グループ・所有者 の順に並ぶので、7 は 0007 として読まれます。
このツールに 7 と入れると 0007 と出て、右詰めで読んだことが通知に出ます。記号にすると ------rwx で、権限を持つのはその他のユーザーだけです。
ls -l の行をそのまま貼る
ターミナルの出力を数字に直したいときは、行をまるごと貼り付けます。行頭の 10 文字だけが使われ、残りは無視されます。

先頭の 1 文字も読みます。d ならディレクトリ、- なら通常のファイルとして、種別のボタンが自動で切り替わります。
ls -l の末尾に + や . や @ が付いていることがあります。これは拡張属性の印なので読み飛ばし、飛ばしたことを通知に出します。
ファイルとディレクトリで説明文が変わる
種別のボタンは手でも切り替えられます。同じ 755 のまま切り替えると、内訳の説明だけが変わります。
いちばん差が出るのは w です。ファイルでは「中身を書き換える」ですが、ディレクトリでは「中のものを作る・消す・名前を変える」になります。
ここが実際のつまずきどころです。読み取り専用にしたファイルでも、置いてあるディレクトリに w と x があれば消えます。消される側の権限は関係しません。
w だけでは足りない点にも注意してください。中をたどれないと、消す相手にたどり着けないためです。
x も違います。ファイルでは実行、ディレクトリでは「中のパスをたどる」です。r だけあって x が無いディレクトリは、名前の一覧は取れても中身を開けません。
chmod の記号指定を打つ前に結果を見る
「chmod の記号指定を当てる」の欄に u+x,go-w のように入れると、いまの値に当てた結果が出ます。

かたまりごとの内訳も出ます。u+x で所有者の実行が立ち、go-w でグループの書き込みが落ちた、という順序がそのまま読めます。
u+rw-x のように 1 つのかたまりに複数書く形も、a=r のようにいったん全部落とす形も受け取ります。
u・g・o を書かないと umask が効く
+w のように相手を書かない指定には、umask が関わります。POSIX は「相手を書かないときは umask のビットを対象から外す」と定めているためです。
下の umask 欄の値がそのまま使われ、外したビットが結果に出ます。chmod +w が思ったほど広がらないのは、この仕組みが働いているからです。
umask 欄が空だったり読めない値だったりすると、この形の指定は計算せずに断ります。入れていない値で結果を出さないためです。
かたまりは左から順に効く
u+x,a+X のように並べると、右のかたまりは左の結果を見ます。0600 に当てると u+x で 0700 になり、a+X がその実行ビットを見て 0711 になります。
a+X だけを 0600 に当てると何も変わりません。実行ビットが 1 つも無いためです。
意味が定まっていない組み合わせは、そう書く
t を u や g と組んだときの意味を、POSIX は定めていません。ディレクトリ以外に t を付けたときの効果も同じです。
このツールはそういう指定を黙って通さず、「定められていない」と書いたうえで、こちらがどう扱ったかを出します。環境ごとに結果が違いうる箇所を、先に知っておけます。
大文字の S と T は実行ビットが無い印
rwsr-xr-x の 3 文字目が小文字の s なら、setuid と所有者の実行ビットの両方が立っています。大文字の S だと、setuid は立っているのに実行ビットがありません。

9 文字目の t と T も同じ関係です。大文字なら sticky だけが立っています。
setuid・setgid・sticky の 3 行には、出典(inode(7))に書かれた意味を添えています。出典に記述が無い組み合わせ、たとえばディレクトリに付けた setuid は、意味を作らずに「書かれていません」と出します。
関連ツール
umask の側でつまずいているなら、umaskを引き算で覚えると合わない理由に別途まとめてあります。
あわせて読みたい
同じテーマ・関連ツールの記事です。