Next: Operator Numeric Modes, Previous: Symbolic Modes, Up: File permissions [Contents][Index]
シンボリックモードで指定する代わりに、モードを表す 1 個の 8 進数 (基数 8) を指定することもできる。この数値は常に 8 進数として解釈されるので、 C 言語の場合とは違って、先頭に ‘0’ を付ける必要はない。‘0055’ というモードは、‘55’ というモードと同じなのだ。(とは言え、‘00055’ のような、5 桁以上のモードは、特別な扱いを受けることがある。 See Directory Setuid and Setgid.)
数値モードは、たいていの場合、対応するシンボリックモードより短くてすむが、 ファイルの変更前のモードビットを踏まえて指定することが、 普通はできないという制限がある。数値モードでは、絶対的な形で指定することしかできないのだ。 ディレクトリの set-user-ID ビットと set-group-ID ビットは、 この一般的な制限の対象外である。 See Directory Setuid and Setgid. なお、演算子付き数値モードを使えば、ファイルの変更前のモードビットを踏まえた指定が可能になる。 See Operator Numeric Modes.
ファイルの所有者、ファイルのグループに所属する他のユーザ、それ以外の一般ユーザ、 この 3 種のユーザに与える許可属性には、それぞれ 3 ビットを要し、その 3 ビットは 1 個の 8 進数で表現される。三つの特殊モードビットにも、おのおの 1 ビットが必要であり、 こちらも一つにまとめて、もう一つの 8 進数として表現される。 各ビットの並び方は、最下位のビットから上位のビットへ向かって、次のようになっている。
モードの 対応する 値 モードビット ファイルのグループに所属しない一般ユーザ: 1 実行/検索 2 書き出し 4 読み込み ファイルのグループに所属する所有者以外のユーザ: 10 実行/検索 20 書き出し 40 読み込み ファイルの所有者: 100 実行/検索 200 書き出し 400 読み込み 特殊モードビット: 1000 削除制限フラグ、またはスティッキー・ビット 2000 ファイルの実行時にグループ ID をセットする 4000 ファイルの実行時にユーザ ID をセットする
たとえば、数値モードの ‘4755’ は、シンボリックモードの ‘u=rwxs,go=rx’ に当たり、数値モードの ‘664’ は、シンボリックモードの ‘ug=rw,o=r’ に相当している。数値モードの ‘0’ は、シンボリックモードの ‘a=’ に相当する。