Next: , Up: File permissions


26.1 ファイルの許可の構造

ユーザがファイルに対して持つ三種類の許可があります.

  1. ファイルを読み込む許可です.ディレクトリに対しては,これはディレクトリの 内容をリストアップする許可という意味があります.
  2. ファイルを書き込む(変更する)許可です.ディレクトリに対しては,これはディ レクトリでのファイルの作成と削除の許可を意味します.
  3. ファイルを実行(それをプログラムとして実行)する許可です.ディレクトリに対 しては,これはディレクトリのファイルにアクセスする許可を意味します.

ファイル上で上記のあらゆる処理を行うため,異なる許可を持つ,三つのユーザ の分類があります.

  1. ファイルの所有者.
  2. ファイルのグループにいるその他のユーザ.
  3. その他全員.

ファイルが作成されるとき,所有者とグループが与えられます.通常,所有者は 現在のユーザで,グループはファイルがあるディレクトリのグループですが,こ れはオペレーティングシステム,ファイルが作成されるファイルシステム,そし てファイルが作成される方法で変化します.chownchgrp コマンドを使用してファイルの所有者とグループを変更可能です.

上記でリストアップされた三つの許可の三つの設定に加えて,ファイルの許可は 三つの特別な構成部分があり,それは実行可能なファイル(プログラム)と,いく つかのシステムのディレクトリにのみ効果があります.

  1. プロセスの実効ユーザIDを,実行時にファイルのものに設定します(setuid bitと呼ばれます).ディレクトリには効果がありません.
  2. プロセスの実効グループIDを,実行時にファイルのものに設定します (setgid bitと呼ばれます).いくつかのシステムのディレクトリに対して は,そのディレクトリで作成されたファイルを同じグループのディレクトリとし て置いても,それを作成したユーザのグループは問題ありません.
  3. スワップデバイス上のプログラムのテキストイメージを保存するので,実行時に より速くロードされます(sticky bitと呼ばれます).いくつかのシステム のディレクトリに対しては,ユーザが所有していないファイルやディレクトリ場 合,そのディレクトリ内でのファイルの削除や名前の変更を妨げます.これは, ディレクトリに対する制限された削除フラグ(restricted deletion flag) と呼ばれます.

上記の追加の許可として,ファイルシステム特有のファイル属性があるかもし れません.例えば,アクセス制御リスト(ACL)で,ファイルが圧縮されている かどうか,ファイルが編集可能かどうか(不変性),ファイルのダンプが可能か どうかなどです.これらは通常,ファイルシステム特有のプログラムで設定さ れます.例えば以下のものがあります.

ext2
GNUとLinux/GNUのext2ファイルシステム固有のファイルの許可(“属性”)は, chattrを使用して設定します.
FFS
FreeBSDのFFSファイルシステムの固有のファイルの許可(“フラグ”)は, chrflagsを使用して設定します.

ファイルの許可“ビット”はファイル上で処理可能であっても,処理が失敗す る可能性もあります.その理由は以下の通りです.

例えば,ファイル上の不変属性が設定されている場合,chmod a+w FILEを実行したという事実によらず,編集することは不可能です.