このようなことを防ぐために, UNIX ではファイルやディレクトリに関する様々な権限を, ファイルの所有者や, ファイルが属するグループ内のユーザーなどに対して設定するための仕組みがあります。 それらの権限をファイルのアクセス権 (permission) といいます。 アクセス権のことをパーミッションやアクセス許可,使用許可等と呼ぶこともあります。
ls -l
で表示されるファイルの詳細情報から調べることができます。
そのために必要な情報はアクセス権と所有者およびグループです。
本節では,第 2.2 節で例示したファイル
year の詳細情報
アクセス権: rw-r--r--
,所有者: skonno,グループ: student
を例に,アクセス権の読み方を説明します。
rw-
と r--
と r--
の 3 組です。
各組は左から順に
rw-
)
r--
)
r--
)
rw-
)
r--
)
r--
)
chmod mode file ...であり,mode には, file ... の現在のアクセス権をどのように変更するのかを指定します。 mode に指定する要素は「誰に」「どの権限を」「与える(または取り除く)」 の三つですが,記述の順番は次のとおりです。
+
か -
を指定します。
+
: 与える
-
: 取り除く
chmod g+w fileだと,file のグループに所属する(所有者以外の)ユーザーに, 書き込みの権限を与えることになります。 また,
chmod a-w fileでは,全てのユーザーに対して,file への書き込みを禁止します。
g+w
などの記号で指定する代りに,
数 (8 進数) で指定することも可能です。
数による指定では,まず次の表にあるように,
読み取り・書き込み・実行の可または不可を表す 3 文字の記号を,
-
のときは 0 に,それ以外のときは 1 に対応させます。
そうしてできあがった 0 と 1 の並びを 3 桁の 2 進数として解釈し,
8 進数で表現します。
記号 | 0,1 の並び (2進数表記) | 8 進数 | 意味 |
--- |
000 | 0 | 読取不可・書込不可・実行不可 |
--x |
001 | 1 | 読取不可・書込不可・実行可 |
-w- |
010 | 2 | 読取不可・書込可・実行不可 |
-wx |
011 | 3 | 読取不可・書込可・実行可 |
r-- |
100 | 4 | 読取可・書込不可・実行不可 |
r-x |
101 | 5 | 読取可・書込不可・実行可 |
rw- |
110 | 6 | 読取可・書込可・実行不可 |
rwx |
111 | 7 | 読取可・書込可・実行可 |
上記の一桁の 8 進数を, 所有者・グループ・その他のユーザーに対するアクセス権として順に並べると, アクセス権の 8 進数表記ができあがります。 この方法による chmod の例を次に示します.
chmod 644
file (すべてのユーザーが読み取り可能,所有
者のみ書き込み可能)
chmod 755
file (すべてのユーザーが読み取りと実行可能,
所有者のみ書き込み可能)