This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
FreeBSD は BSD UNIX を起源とする歴史を持ち, いくつかの鍵となる UNIX 思想にもとづいた基本設計がされています. まず最も際だった特徴として最初に言えるのは, FreeBSD がマルチユーザのオペレーティングシステムだということです. FreeBSD は同時に働いている複数のユーザすべてを, 完全に分離したタスク上で処理する能力を持っています. また FreeBSD は, ハードウェアデバイス, 周辺装置, メモリ, CPU 時間等への要求を, 各ユーザが平等に利用できるように適切に共有し, 管理する役割を担っています.
システムがマルチユーザをサポートしているため, システムが管理する資源はすべて, 誰がその資源を読み・書き・実行できるかを支配する, 一組の許可属性を持っています. これらの許可属性は 3 つの部分からなる 8 進数の形で格納されています. それはそのファイルの所有者(owner)に対するもの, そのファイルが所属するグループ(group)に対するもの, その他(others)に対するものの 3 つです. これを数字を使って表現すると, 次のようになります.
値 | 許可属性 | ディレクトリの表示 |
---|---|---|
0 | 読み込み不可, 書き込み不可, 実行不可 | --- |
1 | 読み込み不可, 書き込み不可, 実行可能 | --x |
2 | 読み込み不可, 書き込み可能, 実行不可 | -w- |
3 | 読み込み不可, 書き込み可能, 実行可能 | -wx |
4 | 読み込み可能, 書き込み不可, 実行不可 | r-- |
5 | 読み込み可能, 書き込み不可, 実行可能 | r-x |
6 | 読み込み可能, 書き込み可能, 実行不可 | rw- |
7 | 読み込み可能, 書き込み可能, 実行可能 | rwx |
ls -l で表示される詳細なディレクトリリストでは, ファイルの所有者, グループ, その他への許可属性を示す欄があるのがわかります. 次に示すのは, その部分だけ抜き出したものです.
-rw-r--r--
左から右へ見たときに最初にあたる文字は, それが 普通のファイルなのか, ディレクトリなのか, キャラクタ型のデバイス特殊ファイルなのか, ブロック型のデバイス特殊ファイルなのか, ソケットなのか, その他の特殊な疑似ファイルデバイスなのかといった種類を示す特別な文字です. その次の rw- と書かれた 3 文字は, そのファイルの所有者に許可を与えるものです. その次の r-- の 3 文字は, そのファイルが所属しているグループに許可を与えます. 最後の r-- の 3 文字は, システムに存在するその他のユーザに許可を与えます. "-" は許可が与えられていないことを示します. このファイルの例では, ファイルの所有者はこのファイルを読み書きでき, ファイルの所属しているグループに属するユーザはファイルを読むことだけでき, そのどちらでもないユーザは, このファイルを読むだけできるように許可属性が与えられています. 上の表によれば, このファイルに与えられた許可属性は 644 となります. ここで各数字は, このファイルの許可属性の 3 つの部分を表しています.
ファイルについてはここまでの説明で十分です. しかし, デバイスの場合の許可属性はどのようにコントロールされているのでしょうか? FreeBSD は, 大部分のハードウェアをファイルとして取り扱います. そのため, プログラムからは普通のファイルとまったく同じようにオープンし, データの読み書きができるようになっています. これらのデバイス特殊ファイルは /dev ディレクトリに収められています.
ディレクトリもまた, ファイルと同様に扱われます. それは読み込み/書き込み/実行の許可属性を持ちます. ディレクトリの実行ビットはファイルのそれとは少し違った意味を持ちます. ディレクトリが実行可能になっているとき, それはその中が探索できること, たとえば, そのディレクトリ中のファイルリストが参照できることを意味します.
この他にも許可属性はありますが, いずれも setuid バイナリや sticky ディレクトリなどといった特殊な状況で使われます. ファイルの許可属性そのものについて, また, それらの設定のしかたに関する詳しい情報は, chmod(1) マニュアルページを参照してください.