パーミッション(権限)の話
macOSでは、利用者ごとに権限を設定してファイルやセキュリティーの管理ができます。利用者はオーナー、グループメンバー、その他のメンバーの3種類に分かれます。権限はファイルの読み取り、書き込み、実行権限の3種類があります。そして利用者と権限を掛け合わせることにより柔軟にファイルやセキュリティが管理できるようになっています。
例を挙げると、オーナーはファイルの読み取り(Read)、書き込み(Write)、実行(eXecute)ができ、グループメンバーは読み取り(R)と実行(X)しかできず、その他のメンバーは読み取り(R)だけしかできないように設定することができます。その他のメンバーには何の権限も与えないことも可能です。
macOSは権限を3つのビットによって表現します。ビットとはコンピュータが扱う最小の単位です。1ビットは「0」または「1」の2つの状態だけを表現できます。
話をわかりやすくするために、道路にある信号機を例に出して説明します。信号機は左から「青」「黄」「赤」と言う順に並んでいます。それぞれの色はスイッチがオンになったら点灯しオフになったら消えます。点灯するにはビットが「1」のスイッチオン状態にならなければなりません。信号機の色とスイッチの状態は次のようになります。
青信号 100
黄信号 010
赤信号 001
ところでビットを3つ使うとスイッチの入れ方によって、次のとおり0から7までの8通りの情報を持たせることができます。赤信号と青進行を同時に点灯させたり、全ての信号を点灯させたりすることもできます。本物の信号機で複数の信号を点灯させると大変なことになりますので、実際はやらないようにお願いします。(笑)
0 000 どの信号も点灯しない
1 001 赤信号のみ点灯する
2 010 黄信号のみ点灯する
3 011 黄色と赤信号のみ点灯する
4 100 青信号のみ点灯する
5 101 青信号と赤信号のみ点灯する。
6 110 青信号と黄信号のみ点灯する
7 111 青、黄、赤の全ての信号が点灯する。
一番左のビットをRead、真ん中をWrite、右のビットをeXecuteとすると、上の8通りの情報は次のように書き直せます。0はハイフンに置き換えます。
0 000 ーーー
1 001 ーーX 実行権限のみ
2 010 ーWー 書き込み権限のみ
3 011 ーWX 書き込みと実行ができる
4 100 Rーー 読み出し権限のみ
5 101 RーX 読み出しと実行ができる
6 110 R Wー 読み出しと書き込みができるが実行はできない
7 111 R W X 全てが許可される
各ファイルの利用者はオーナー、グループメンバー、その他のメンバーと3種類ありましたね。そこで、左からオーナーの権限、グループメンバーの権限、その他のメンバーの順で3つのビットを並べて権限を表示させると次のようになります。
RWX R-X R--
この例では、オーナーは読み書き実行権限を持っており、グループメンバーは読み出しと実行権限だけを持っています。その他のメンバーは読み出し権限だけ与えられています。
それぞれのビットの状態を10進数で表すこともあります。今のRWXR-XR--の例を数字で表すと754となります。