それぞれのファイルには,ファイルに対してユーザ持つアクセスの種類を制御す る許可の設定があります.ファイルに対する許可はアクセスモード とも呼ばれます.それらは,抽象的な形式または8進数で表示可能です.
ユーザがファイルに対して持つ3種類の許可があります.
ファイル上で上記のあらゆる処理を行うため,異なる許可を持つ,3つのユーザ の分類があります.
ファイルが作成されるとき,所有者とグループが与えられます.通常,所有者は
現在のユーザで,グループはファイルがあるディレクトリのグループですが,こ
れはオペレーティングシステム,ファイルが作成されるファイルシステム,そし
てファイルが作成される方法で変化します.chown
とchgrp
コマン
ドを使用してファイルの所有者とグループを変更可能です.
上記でリストアップされた3つの許可の3つの設定に加えて,ファイルの許可は3 つの特別な構成部分があり,それは実行可能なファイル(プログラム)と,いくつ かのシステムのディレクトリにのみ効果があります.
象徴的なモードは,単一文字のシンボルの演算子として,ファイルの許可
を変更することを表します.それは,ファイルの許可の部分のどれかまたは全て
を編集可能にし,オプションでそれらに前置される値と,おそらく現在の
umask
にも基づきます(see section umaskと保護).
抽象的なモードの書式は以下の通りです.
[ugoa...][[+-=][rwxXstugo...]...][,...]
以下のセクションで,抽象的なモードのその他の詳細の処理を記述します.
ファイルの許可での基本的な抽象的処理で,特定ユーザのファイルの読み込み, 書き込み,実行の許可を,加えたり,削除したり,設定します.これらの処理は 以下の書式です.
users operation permissions
上記の3つの部分の間のスペースは,可読性のみのために表示しています.抽象 的なモードではスペースを含めることはできません.
users部は,ファイルアクセスを変更されるユーザを伝えます.それは以 下の,一つ以上の文字から成り立ちます(または,空にすることもできます.そ のとき生じることは,see section umaskと保護).これらの文字の一つ以 上が与えられたとき,その順番は重要ではありません.
u
g
o
a
operation部は,ファイルにアクセスするユーザの効果を変更する方法を 伝え,以下のシンボルの一つになります.
+
-
=
permissions部は,ファイルが変更されるアクセスの種類を伝えます.ゼ ロ以上の文字になります.users部を用いた場合,1文字以上与えられたと きは,その順序は重要ではありません.permissions部の省略は, `='の時のみ役に立ち,それは指定されたusersにそのファイルに対 する全てのアクセス権を取り除きます.
r
w
x
例えば,全員にファイルの読み込みと書き込みの許可を与え,実行を与えないた めに,以下を使用してください.
a=rw
ファイルの所有者以外の全てのユーザから書き込み許可を削除するため,以下を 使用してください.
go-w
上記のコマンドは,ファイルの所有者のアクセス権に効果が無く,その他のユー ザが,ファイルの読み込みと実行が可能かどうかにも効果がありません.
ファイルの所有者以外全員に,そのファイルに対しあらゆる許可を与えないため に,以下のモードを使用してください.他のユーザは,ファイルがあるディレク トリに書き込み許可がある場合,ファイルを削除可能です.
go=
同じことを指定するもう1つの方法です.
og-rxw
ファイルの許可を,既存の許可を基準にすることができます.こうするために, オペレータの後に`r',`w'や`x'を使用する代わりに,文字 `u',`g'や`o'を使用します.例えば以下のモードです.
o+g
それは,ファイルのグループにいるユーザに対する許可を,その他のユーザがそ のファイルに対して持っている許可に加えます.このため,ファイルが最初にモー ド664 (`rw-rw-r--')の場合,上記のモードは,それを666 (`rw-rw-rw-')に変更します.ファイルが最初にモード741 (`rwxr----x')の場合,上記のモードは,それを745 (`rwxr--r-x')に 変更します.`-'と`='の処理は同様に働きます.
ファイルの読み込み,書き込み,そして実行の許可の変更に加えて,特別な許可 を変更できます.許可の概要は,See section ファイルの許可の構造.
実行時にファイルの許可をユーザ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 ファイルの許可の構造)のみに効果があることを, 覚えておいてください.また,`u+t',`g+t',そして`o+s'の様 な組合わせには効果はありません.
`='オペレータは,特別な許可に用いる場合,全く役に立ちません.例えば, モードを以下のようにします.
o=t
これは,ファイルをスワップデバイスに保存するようにしますが,それは,ファ イルのグループにいないユーザが持っている可能性のある,全ての,読み込み, 書き込み,そして実行の許可を削除します.
象徴的な許可の特別な形式がもう1つあります.`x'の代わりに`X'を 用いた場合,実行許可は,既に実行形式があるファイル,またはディレクトリの みに効果があります.それは,ディレクトリが最初にあらゆる実行許可を持って いない場合でも,ディレクトリの実行許可に効果があります.
例えば,このようなモードにします.
a+X
これは,全てのユーザに,それまでに持っていなかった,ファイルの実行(やディ レクトリの検索)の許可を与えます.
象徴的なモードの書式は,実際に上記で記述したより複雑です(see section 許可の設定).それは,ファイルの許可を複数変更する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
象徴的なモードのusers部が省略された場合,システム変数umask
で無効に設定されているあらゆる許可以外,デフォルトは
`a'になります(全てのユーザに影響します).umask
の値は
umask
コマンドを使用して設定できます.そのデフォルト値は,システム
毎に異なります.
象徴的なモードのusers部の省略は,`+'以外のオペレーションでは
一般に役に立ちません.希望しないファイルに対する余分な許可を与えることに
対して,簡単にカスタマイズ可能な保護としてumask
が使用可能になるの
で,それは`+'とともに用いると役に立ちます.
例として,umask
の値が2の場合,それはファイルのグループ以外のユー
ザに対し書き込み許可を削除します.以下のモードを考えます.
+w
これは,その所有者とファイルのグループのユーザに対する書き込み許可を加え ますが,それ以外のユーザには与えません.対照的に,以下のモードを 考えます.
a+w
これはumask
を無視し,全てのユーザに対し,書き込み許可を与える
のです.
ファイルの許可は,内部では整数で保存されます.象徴的なモードの代わりとし て,新しいモードの内部に対応した適切な8進数(基数8)で与えることができます. この数は常に8進数で処理されます.Cで行うような,前置される0は不要です. モード0055はモード55と同じです.
数値的なモードは,通常対応する象徴的なモードより短くなりますが,ファイル の前の許可を考慮にいれることに制限されます.それは絶対的に設定が可能なだ けです.
ほとんどのシステム上では,ユーザ,ファイルのグループのその他のユーザ,そ してファイルのグループではないその他のユーザに応じた許可は,それぞれ3つ のビットになり,それは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は,象徴的なモードの`ugo='に対応します.
Go to the first, previous, next, last section, table of contents.