[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

6. ファイルの許可

それぞれのファイルには,ファイルに対してユーザ持つアクセスの種類を制御す る許可の設定があります.ファイルに対する許可はアクセスモード とも呼ばれます.それらは,抽象的な形式または8進数で表示可能です.

6.1 ファイルの許可の構造  Structure of file permissions.
6.2 象徴的なモード  Mnemonic permissions representation.
6.3 数値的なモード  Permissions as octal numbers.


6.1 ファイルの許可の構造

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

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

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

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

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

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

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


6.2 象徴的なモード

象徴的なモードは,単一文字のシンボルの処理として,ファイルの許可を 変更することを表します.それは,ファイルの許可の部分のどれかまたは全てを 編集可能にし,オプションでそれらに前置される値と,おそらく現在の umaskにも基づきます(see section 6.2.6 umaskと保護).

抽象的なモードの書式は以下の通りです.

 
[ugoa...][[+-=][rwxXstugo...]...][,...]

以下のセクションで,抽象的なモードのその他の詳細の処理を記述します.

6.2.1 許可の設定  Basic operations on permissions.
6.2.2 既存の許可をコピー  Copying existing permissions.
6.2.3 特定の許可を変更  Special permissions.
6.2.4 実行可能の条件  Conditionally affecting executability.
6.2.5 複数の変更  Making multiple changes.
6.2.6 umaskと保護  The effect of the umask.


6.2.1 許可の設定

ファイルの許可での基本的な抽象的処理で,特定ユーザのファイルの読み込み, 書き込み,実行の許可を,加えたり,削除したり,設定します.これらの処理は 以下の書式です.

 
users operation permissions

上記の3つの部分の間のスペースは,可読性のみのために表示しています.抽象 的なモードではスペースを含めることはできません.

users部は,ファイルアクセスを変更されるユーザを伝えます.それは, 一つ以上の以下の文字から成り立ちます(または,空にすることもできます.そ のとき生じることは,see section 6.2.6 umaskと保護).これらの文字の一つ以 上が与えられたとき,その順番は重要ではありません.

u
ファイルを所有しているユーザ.
g
ファイルのグループのその他のユーザ.
o
その他全部のユーザ.
a
全てのユーザで,`ugo'と同じです.

operation部は,ファイルにアクセスするユーザの効果を変更する方法を 伝え,以下のシンボルの一つになります.

+
usersが既に持つ,そのファイルに対するあらゆる許可に, permissionsを加えます.
-
usersが既に持つ,そのファイルに対するあらゆる許可から, permissionsを削除します.
=
usersが持つ,そのファイルに対する許可を,permissionsのみにし ます.

permissions部は,ファイルが変更されるアクセスの種類を伝えます.ゼ ロ以上の文字になります.users部を用いた場合,1文字以上与えられたと きは,その順序は重要ではありません.permissions部の省略は, `='の時のみ役に立ち,それは指定されたusersにそのファイルに対 する全てのアクセス権を取り除きます.

r
usersがファイルを読み込むのに必要な許可です.
w
usersがファイルに書き込むのに必要な許可です.
x
usersがファイルを実行するのに必要な許可です.

例えば,全員にファイルの読み込みと書き込みの許可を与え,実行を与えないた めに,以下を使用してください.

 
a=rw

ファイルの所有者以外の全てのユーザから書き込み許可を削除するため,以下を 使用してください.

 
go-w

上記のコマンドは,ファイルの所有者のアクセス権に効果が無く,その他のユー ザが,ファイルの読み込みと実行が可能かどうかにも効果がありません.

ファイルの所有者以外全員に,そのファイルに対しあらゆる許可を与えないため に,以下のモードを使用してください.他のユーザは,ファイルがあるディレク トリに書き込み許可がある場合,ファイルを削除可能です.

 
go=

同じことを指定するもう1つの方法です.

 
og-rxw


6.2.2 既存の許可をコピー

ファイルの許可を,既存の許可の部分を基準にすることができます.こうするた めに,オペレータの後に`r',`w'や`x'を使用する代わりに,文 字`u',`g'や`o'を使用します.例えば以下のモードです.

 
o+g

それは,ファイルのグループにいるユーザに対する許可を,その他のユーザがそ のファイルに対して持っている許可に加えます.このため,ファイルが最初にモー ド664 (`rw-rw-r--')の場合,上記のモードは,それを666 (`rw-rw-rw-')に変更します.ファイルが最初にモード741 (`rwxr----x')の場合,上記のモードは,それを745 (`rwxr--r-x')に 変更します.`-'と`='の処理は同様に働きます.


6.2.3 特定の許可を変更

ファイルの読み込み,書き込み,そして実行の許可の変更に加えて,特別な許可 を変更できます.許可の概要は,See section 6.1 ファイルの許可の構造.

実行時にファイルの許可をユーザIDに設定するため,象徴的なモードの users部での`u'と,permissions部での`s'を使用してく ださい.

実行時にファイルの許可をグループIDに設定するため,象徴的なモードの users部での`g'とpermissions部での`s'を使用してくだ さい.

スワップデバイスに永久に残すファイルの許可を変更するため,象徴的なモード のusers部での`o'とpermissions部での`t'を使用してく ださい.

例えば,ユーザID許可をプログラムに加えるため,以下のモードを使用可能です.

 
u+s

ユーザIDのとグループIDの許可の設定をそれから削除するため,以下のモードを 使用可能です.

 
ug-s

プログラムがスワップデバイスに保存されるようにするため,以下のモードを使 用可能です.

 
o+t

特別な許可は実行形式のファイルと,いくつかのシステムのディレクトリ(そこ では異なる意味を持ちます.see section 6.1 ファイルの許可の構造)のみに効果があることを, 覚えておいてください.象徴的なモードのusers部で`a'を持ちいた 場合,特別な許可は効果がありません.このため,以下の例を考えます.

 
a+s

これは,全く効果がありません.特別な許可を効果的にするために, `u',`g'と,`o'を明示的に使用する必要があります.また, `u+t',`g+t'と,`o+s'の組み合わせも効果がありません.

`='オペレータは,特別な許可に用いる場合,全く役に立ちません.例えば, モードを以下のようにします.

 
o=t

これは,ファイルをスワップデバイスに保存するようにしますが,それは,ファ イルのグループにいないユーザが持っている可能性のある,全ての,読み込み, 書き込み,そして実行の許可を削除します.


6.2.4 実行可能の条件

象徴的な許可の特別な形式がもう1つあります.`x'の代わりに`X'を 用いた場合,実行許可は,既に実行形式があるファイル,またはディレクトリの みに効果があります.それは,ディレクトリが最初にあらゆる実行許可を持って いない場合でも,ディレクトリの実行許可に効果があります.

例えば,このようなモードにします.

 
a+X

これは,全てのユーザに,それまでに持っていなかった,ファイルの実行(やディ レクトリの検索)の許可を与えます.


6.2.5 複数の変更

象徴的なモードの書式は,実際に上記で記述したより複雑です(see section 6.2.1 許可の設定).それは,ファイルの許可を複数変更する2つの方法を提供します.

最初の方法は,象徴的なモードで,複数のoperation部と permissions部をusers部の後で指定する方法です.

例えば,以下のようなモードにします.

 
og+rX-w

これは,ファイルの所有者以外のユーザに,ファイルの読み込み許可を与え,そ れがディレクトリの場合や,既に誰かに実行形式の許可がある場合,実行許可を 与えます.そして,それはファイルの書き込み許可を禁止します.それはファイ ルの所有者が持つ許可に影響しません.上記のモードは以下の2つのモードと同 じです.

 
og+rX
og-w

複数の変更をするための2番目の方法は,カンマで分けられた,単純な象徴的な モードを1つの以上の指定することです.例えば,以下のようなモードにします.

 
a+r,go-w

これは,全員にファイルの読み込み許可を与え,所有者以外全員の書き込み許可 を削除します.もう1つの例です.

 
u=rwx,g=rx,o=

これは,ファイルに明示的に特別でない許可の全てを設定します.(それはファ イルのグループではないユーザに,許可を全く与えません.)

2つの方法は組み合わせ可能です.以下のモードになります.

 
a+r,g+x-w

これは,全てのユーザに,ファイルの読み込み許可を与え,ファイルのグループ にいるユーザに実行許可も与えますが,書き込み許可は与えません.上記のモー ドは異なる方法で書くこともできます.その1つは以下になります.

 
u+r,g+rx,o+r,g-w


6.2.6 umaskと保護

象徴的なモードのusers部が省略された場合,システム変数umask無効に設定されているあらゆる許可以外,デフォルトは `a'(で,全てのユーザに影響します).umaskの値はumaskコ マンドを使用して設定できます.そのデフォルト値は,システム毎に異なります.

象徴的なモードのusers部の省略は,`+'以外のオペレーションでは 一般に役に立ちません.希望しないファイルに対する余分な許可を与えるために, 簡単にカスタマイズ可能な保護としてumaskが使用可能なので,それは `+'とともに用いると役に立ちます.

例として,umaskの値が2の場合,それはファイルのグループ以外のユー ザに対し書き込み許可を削除します.以下のモードを考えます.

 
+w

これは,その所有者とファイルのグループのユーザに対する書き込み許可を加え ますが,それ以外のユーザには与えません.対照的に,以下のモードを 考えます.

 
a+w

これはumaskを無視し,全てのユーザに対し,書き込み許可を与える のです


6.3 数値的なモード

ファイルの許可は,内部では16ビットの整数で保存されます.象徴的なモードの 代わりとして,新しいモードの内部に対応した適切な8進数(基数8)で与えること ができます.この数は常に8進数で処理されます.Cで行うような,前置される0 は不要です.モード0055はモード55と同じです.

数値的なモードは,通常対応する象徴的なモードより短くなりますが,ファイル の前の許可を考慮にいれることに制限があります.それは絶対的な設定が可能な だけです.

ユーザ,ファイルのグループのその他のユーザ,そしてファイルのグループでは ないその他のユーザに応じた許可は,それぞれ3つのビットになり,それは1つの 8進数として表現されます.ここに16ビットの整数にアレンジされたビットがあ り,最下位ビットからはじめます.

 
対応する値
モード    許可

          ファイルのグループにいないその他のユーザ:
   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は,象徴的なモードの`ugo='に対応します.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on January, 21 2003 using texi2html