File:  [Local Repository] / gnujdoc / fileutils-4.1 / perm-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Wed Jun 6 13:54:59 2001 UTC (19 years, 5 months ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Add fileutils-4.1

    1: それぞれのファイルには,ファイルに対してユーザ持つアクセスの種類を制御す
    2: る@dfn{許可}の設定があります.ファイルに対する許可は@dfn{アクセスモード} 
    3: とも呼ばれます.それらは,抽象的な形式または8進数で表示可能です.
    4: 
    5: @menu
    6: * Mode Structure::              Structure of file permissions.
    7: * Symbolic Modes::              Mnemonic permissions representation.
    8: * Numeric Modes::               Permissions as octal numbers.
    9: @end menu
   10: 
   11: @node Mode Structure
   12: @section ファイルの許可の構造
   13: 
   14: ユーザがファイルに対して持つ3種類の許可があります.
   15: 
   16: @enumerate
   17: @item
   18: @cindex read permission
   19: ファイルを読み込む許可です.ディレクトリに対しては,これはディレクトリの
   20: 内容をリストアップする許可という意味があります.
   21: @item
   22: @cindex write permission
   23: ファイルを書き込む(変更する)許可です.ディレクトリに対しては,これはディ
   24: レクトリでのファイルの作成と削除の許可を意味します.
   25: @item
   26: @cindex execute permission
   27: ファイルを実行(それをプログラムとして実行)する許可です.ディレクトリに対
   28: しては,これはディレクトリのファイルにアクセスする許可を意味します.
   29: @end enumerate
   30: 
   31: ファイル上で上記のあらゆる処理を行うため,異なる許可を持つ,3つのユーザ
   32: の分類があります.
   33: 
   34: @enumerate
   35: @item
   36: ファイルの所有者.
   37: @item
   38: ファイルのグループにいるその他のユーザ.
   39: @item
   40: その他全員.
   41: @end enumerate
   42: 
   43: @cindex owner, default
   44: @cindex group owner, default
   45: ファイルが作成されるとき,所有者とグループが与えられます.通常,所有者は
   46: 現在のユーザで,グループはファイルがあるディレクトリのグループですが,こ
   47: れはオペレーティングシステム,ファイルが作成されるファイルシステム,そし
   48: てファイルが作成される方法で変化します.@code{chown}と@code{chgrp}コマン
   49: ドを使用してファイルの所有者とグループを変更可能です.
   50: 
   51: 上記でリストアップされた3つの許可の3つの設定に加えて,ファイルの許可は3 
   52: つの特別な構成部分があり,それは実行可能なファイル(プログラム)と,いくつ
   53: かのシステムのディレクトリにのみ効果があります.
   54: 
   55: @enumerate
   56: @item
   57: @cindex setuid
   58: プロセスの事実上のユーザIDを,実行時にファイルのものに設定します
   59: (@dfn{setuid bit}と呼ばれます).ディレクトリには効果がありません.
   60: @item
   61: @cindex setgid
   62: プロセスの事実上のグループIDを,実行時にファイルのものに設定します
   63: (@dfn{setgid bit}と呼ばれます).いくつかのシステムのディレクトリに対して
   64: は,そのディレクトリで作成されたファイルを同じグループのディレクトリとし
   65: て置いたとしても,それを作成したユーザのグループは問題ありません.
   66: @item
   67: @cindex sticky
   68: @cindex swap space, saving text image in
   69: @cindex text image, saving in swap space
   70: @cindex restricted deletion flag
   71: スワップデバイス上のプログラムのテキストイメージを保存するので,実行時に
   72: より速くロードされます(@dfn{sticky bit}と呼ばれます).いくつかのシステム
   73: のディレクトリに対しては,ユーザが所有していないファイルやディレクトリ場
   74: 合,そのディレクトリ内でのファイルの削除や名前の変更を妨げます.これは,
   75: ディレクトリに対する@dfn{限定削除フラグ}と呼ばれます.
   76: @end enumerate
   77: 
   78: @node Symbolic Modes
   79: @section 象徴的なモード
   80: 
   81: @cindex symbolic modes
   82: @dfn{象徴的なモード}は,単一文字のシンボルの演算子として,ファイルの許可
   83: を変更することを表します.それは,ファイルの許可の部分のどれかまたは全て
   84: を編集可能にし,オプションでそれらに前置される値と,おそらく現在の
   85: @code{umask}にも基づきます(@pxref{Umask and Protection}).
   86: 
   87: 抽象的なモードの書式は以下の通りです.
   88: 
   89: @example
   90: @r{[}ugoa@dots{}@r{][[}+-=@r{][}rwxXstugo@dots{}@r{]}@dots{}@r{][},@dots{}@r{]}
   91: @end example
   92: 
   93: 以下のセクションで,抽象的なモードのその他の詳細の処理を記述します.
   94: 
   95: @menu
   96: * Setting Permissions::          Basic operations on permissions.
   97: * Copying Permissions::          Copying existing permissions.
   98: * Changing Special Permissions:: Special permissions.
   99: * Conditional Executability::    Conditionally affecting executability.
  100: * Multiple Changes::             Making multiple changes.
  101: * Umask and Protection::              The effect of the umask.
  102: @end menu
  103: 
  104: @node Setting Permissions
  105: @subsection 許可の設定
  106: 
  107: ファイルの許可での基本的な抽象的処理で,特定ユーザのファイルの読み込み,
  108: 書き込み,実行の許可を,加えたり,削除したり,設定します.これらの処理は
  109: 以下の書式です.
  110: 
  111: @example
  112: @var{users} @var{operation} @var{permissions}
  113: @end example
  114: 
  115: @noindent
  116: 上記の3つの部分の間のスペースは,可読性のみのために表示しています.抽象
  117: 的なモードではスペースを含めることはできません.
  118: 
  119: @var{users}部は,ファイルアクセスを変更されるユーザを伝えます.それは以
  120: 下の,一つ以上の文字から成り立ちます(または,空にすることもできます.そ
  121: のとき生じることは,@pxref{Umask and Protection}).これらの文字の一つ以
  122: 上が与えられたとき,その順番は重要ではありません.
  123: 
  124: @table @code
  125: @item u
  126: @cindex owner of file, permissions for
  127: ファイルを所有しているユーザ.
  128: @item g
  129: @cindex group, permissions for
  130: ファイルのグループのその他のユーザ.
  131: @item o
  132: @cindex other permissions
  133: その他全部のユーザ.
  134: @item a
  135: 全てのユーザで,@samp{ugo}と同じです.
  136: @end table
  137: 
  138: @var{operation}部は,ファイルにアクセスするユーザの効果を変更する方法を
  139: 伝え,以下のシンボルの一つになります.
  140: 
  141: @table @code
  142: @item +
  143: @cindex adding permissions
  144: @var{users}が既に持つ,そのファイルに対するあらゆる許可に,
  145: @var{permissions}を加えます.
  146: @item -
  147: @cindex removing permissions
  148: @cindex subtracting permissions
  149: @var{users}が既に持つ,そのファイルに対するあらゆる許可から,
  150: @var{permissions}を削除します.
  151: @item =
  152: @cindex setting permissions
  153: @var{users}が持つ,そのファイルに対する許可を,@var{permissions}のみにし
  154: ます.
  155: @end table
  156: 
  157: @var{permissions}部は,ファイルが変更されるアクセスの種類を伝えます.ゼ
  158: ロ以上の文字になります.@var{users}部を用いた場合,1文字以上与えられたと
  159: きは,その順序は重要ではありません.@var{permissions}部の省略は,
  160: @samp{=}の時のみ役に立ち,それは指定された@var{users}にそのファイルに対
  161: する全てのアクセス権を取り除きます.
  162: 
  163: @table @code
  164: @item r
  165: @cindex read permission, symbolic
  166: @var{users}がファイルを読み込むのに必要な許可です.
  167: @item w
  168: @cindex write permission, symbolic
  169: @var{users}がファイルに書き込むのに必要な許可です.
  170: @item x
  171: @cindex execute permission, symbolic
  172: @var{users}がファイルを実行するのに必要な許可です.
  173: @end table
  174: 
  175: 例えば,全員にファイルの読み込みと書き込みの許可を与え,実行を与えないた
  176: めに,以下を使用してください.
  177: 
  178: @example
  179: a=rw
  180: @end example
  181: 
  182: ファイルの所有者以外の全てのユーザから書き込み許可を削除するため,以下を
  183: 使用してください.
  184: 
  185: @example
  186: go-w
  187: @end example
  188: 
  189: @noindent
  190: 上記のコマンドは,ファイルの所有者のアクセス権に効果が無く,その他のユー
  191: ザが,ファイルの読み込みと実行が可能かどうかにも効果がありません.
  192: 
  193: ファイルの所有者以外全員に,そのファイルに対しあらゆる許可を与えないため
  194: に,以下のモードを使用してください.他のユーザは,ファイルがあるディレク
  195: トリに書き込み許可がある場合,ファイルを削除可能です.
  196: 
  197: @example
  198: go=
  199: @end example
  200: 
  201: @noindent
  202: 同じことを指定するもう1つの方法です.
  203: 
  204: @example
  205: og-rxw
  206: @end example
  207: 
  208: 
  209: @node Copying Permissions
  210: @subsection 既存の許可をコピー
  211: 
  212: @cindex copying existing permissions
  213: @cindex permissions, copying existing
  214: ファイルの許可を,既存の許可を基準にすることができます.こうするために,
  215: オペレータの後に@samp{r},@samp{w}や@samp{x}を使用する代わりに,文字
  216: @samp{u},@samp{g}や@samp{o}を使用します.例えば以下のモードです.
  217: @example
  218: o+g
  219: @end example
  220: @noindent
  221: それは,ファイルのグループにいるユーザに対する許可を,その他のユーザがそ
  222: のファイルに対して持っている許可に加えます.このため,ファイルが最初にモー
  223: ド664 (@samp{rw-rw-r--})の場合,上記のモードは,それを666
  224: (@samp{rw-rw-rw-})に変更します.ファイルが最初にモード741
  225: (@samp{rwxr----x})の場合,上記のモードは,それを745 (@samp{rwxr--r-x})に
  226: 変更します.@samp{-}と@samp{=}の処理は同様に働きます.
  227: 
  228: 
  229: @node Changing Special Permissions
  230: @subsection 特別な許可を変更
  231: 
  232: @cindex changing special permissions
  233: ファイルの読み込み,書き込み,そして実行の許可の変更に加えて,特別な許可
  234: を変更できます.許可の概要は,@xref{Mode Structure}.
  235: 
  236: 実行時にファイルの許可をユーザIDに設定するため,象徴的なモードの
  237: @var{users}部での@samp{u}と,@var{permissions}部での@samp{s}を使用してく
  238: ださい.
  239: 
  240: 実行時にファイルの許可をグループIDに設定するため,象徴的なモードの
  241: @var{users}部での@samp{g}と@var{permissions}部での@samp{s}を使用してくだ
  242: さい.
  243: 
  244: スワップデバイスに永久に残すファイルの許可を変更するため,象徴的なモード
  245: の@var{users}部での@samp{o}と@var{permissions}部での@samp{t}を使用してく
  246: ださい.
  247: 
  248: 例えば,ユーザID許可をプログラムに加えるため,以下のモードを使用可能です.
  249: 
  250: @example
  251: u+s
  252: @end example
  253: 
  254: ユーザIDのとグループIDの許可の設定をそれから削除するため,以下のモードを
  255: 使用可能です.
  256: 
  257: @example
  258: ug-s
  259: @end example
  260: 
  261: プログラムがスワップデバイスに保存されるようにするため,以下のモードを使
  262: 用可能です.
  263: 
  264: @example
  265: o+t
  266: @end example
  267: 
  268: 特別な許可は実行形式のファイルと,いくつかのシステムのディレクトリ(そこ
  269: では異なる意味を持ちます.@pxref{Mode Structure})のみに効果があることを,
  270: 覚えておいてください.また,@samp{u+t},@samp{g+t},そして@samp{o+s}の様
  271: な組合わせには効果はありません.
  272: 
  273: @samp{=}オペレータは,特別な許可に用いる場合,全く役に立ちません.例えば,
  274: モードを以下のようにします.
  275: 
  276: @example
  277: o=t
  278: @end example
  279: 
  280: @noindent
  281: これは,ファイルをスワップデバイスに保存するようにしますが,それは,ファ
  282: イルのグループにいないユーザが持っている可能性のある,全ての,読み込み,
  283: 書き込み,そして実行の許可を削除します.
  284: 
  285: 
  286: @node Conditional Executability
  287: @subsection 実行可能の条件
  288: 
  289: @cindex conditional executability
  290: 象徴的な許可の特別な形式がもう1つあります.@samp{x}の代わりに@samp{X}を
  291: 用いた場合,実行許可は,既に実行形式があるファイル,またはディレクトリの
  292: みに効果があります.それは,ディレクトリが最初にあらゆる実行許可を持って
  293: いない場合でも,ディレクトリの実行許可に効果があります.
  294: 
  295: 例えば,このようなモードにします.
  296: 
  297: @example
  298: a+X
  299: @end example
  300: 
  301: @noindent
  302: これは,全てのユーザに,それまでに持っていなかった,ファイルの実行(やディ
  303: レクトリの検索)の許可を与えます.
  304: 
  305: 
  306: @node Multiple Changes
  307: @subsection 複数の変更
  308: 
  309: @cindex multiple changes to permissions
  310: 象徴的なモードの書式は,実際に上記で記述したより複雑です(@pxref{Setting
  311: Permissions}).それは,ファイルの許可を複数変更する2つの方法を提供します.
  312: 
  313: 最初の方法は,象徴的なモードで,複数の@var{operation}部と
  314: @var{permissions}部を@var{users}部の後で指定する方法です.
  315: 
  316: 例えば,以下のようなモードにします.
  317: 
  318: @example
  319: og+rX-w
  320: @end example
  321: 
  322: @noindent
  323: これは,ファイルの所有者以外のユーザに,ファイルの読み込み許可を与え,そ
  324: れがディレクトリの場合や,既に誰かに実行形式の許可がある場合,実行許可を
  325: 与えます.そして,それはファイルの書き込み許可を禁止します.それはファイ
  326: ルの所有者が持つ許可に影響しません.上記のモードは以下の2つのモードと同
  327: じです.
  328: 
  329: @example
  330: og+rX
  331: og-w
  332: @end example
  333: 
  334: 複数の変更をするための2番目の方法は,カンマで分けられた,単純な象徴的な
  335: モードを1つの以上の指定することです.例えば,以下のようなモードにします.
  336: 
  337: @example
  338: a+r,go-w
  339: @end example
  340: 
  341: @noindent
  342: これは,全員にファイルの読み込み許可を与え,所有者以外全員の書き込み許可
  343: を削除します.もう1つの例です.
  344: 
  345: @example
  346: u=rwx,g=rx,o=
  347: @end example
  348: 
  349: @noindent
  350: これは,ファイルに明示的に特別でない許可の全てを設定します.(それはファ
  351: イルのグループではないユーザに,許可を全く与えません.)
  352: 
  353: 2つの方法は組み合わせ可能です.以下のモードになります.
  354: 
  355: @example
  356: a+r,g+x-w
  357: @end example
  358: 
  359: @noindent
  360: これは,全てのユーザに,ファイルの読み込み許可を与え,ファイルのグループ
  361: にいるユーザに実行許可も与えますが,書き込み許可は与えません.上記のモー
  362: ドは異なる方法で書くこともできます.その1つは以下になります.
  363: 
  364: @example
  365: u+r,g+rx,o+r,g-w
  366: @end example
  367: 
  368: 
  369: @node Umask and Protection
  370: @subsection umaskと保護
  371: 
  372: @cindex umask and modes
  373: @cindex modes and umask
  374: 象徴的なモードの@var{users}部が省略された場合,システム変数@code{umask} 
  375: で@emph{無効に}@emph{設定されている}あらゆる許可以外,デフォルトは
  376: @samp{a}になります(全てのユーザに影響します).@code{umask}の値は
  377: @code{umask}コマンドを使用して設定できます.そのデフォルト値は,システム
  378: 毎に異なります.
  379: 
  380: @cindex giving away permissions
  381: 象徴的なモードの@var{users}部の省略は,@samp{+}以外のオペレーションでは
  382: 一般に役に立ちません.希望しないファイルに対する余分な許可を与えることに
  383: 対して,簡単にカスタマイズ可能な保護として@code{umask}が使用可能になるの
  384: で,それは@samp{+}とともに用いると役に立ちます.
  385: 
  386: 例として,@code{umask}の値が2の場合,それはファイルのグループ以外のユー
  387: ザに対し書き込み許可を削除します.以下のモードを考えます.
  388: 
  389: @example
  390: +w
  391: @end example
  392: 
  393: @noindent
  394: これは,その所有者とファイルのグループのユーザに対する書き込み許可を加え
  395: ますが,それ以外のユーザには与え@emph{ません}.対照的に,以下のモードを
  396: 考えます.
  397: 
  398: @example
  399: a+w
  400: @end example
  401: 
  402: @noindent
  403: これは@code{umask}を無視し,全てのユーザに対し,書き込み許可を与える
  404: @emph{のです}.
  405: 
  406: 
  407: @node Numeric Modes
  408: @section 数値的なモード
  409: 
  410: @cindex numeric modes
  411: @cindex file permissions, numeric
  412: @cindex octal numbers for file modes
  413: ファイルの許可は,内部では整数で保存されます.象徴的なモードの代わりとし
  414: て,新しいモードの内部に対応した適切な8進数(基数8)で与えることができます.
  415: この数は常に8進数で処理されます.Cで行うような,前置される0は不要です.
  416: モード0055はモード55と同じです.
  417: 
  418: 数値的なモードは,通常対応する象徴的なモードより短くなりますが,ファイル
  419: の前の許可を考慮にいれることに制限されます.それは絶対的に設定が可能なだ
  420: けです.
  421: 
  422: ほとんどのシステム上では,ユーザ,ファイルのグループのその他のユーザ,そ
  423: してファイルのグループではないその他のユーザに応じた許可は,それぞれ3つ
  424: のビットになり,それは1つの8進数として表現されます.ここにビットを整える
  425: 方法があり,それは最下位ビットからはじめます.
  426: 
  427: @example
  428: 対応する値
  429: モード    許可
  430: 
  431:           ファイルのグループにいないその他のユーザ:
  432:    1      実行
  433:    2      書き込み
  434:    4      読み込み
  435: 
  436:           ファイルのグループのその他のユーザ:
  437:   10      実行
  438:   20      書き込み
  439:   40      読み込み
  440: 
  441:           ファイルの所有者:
  442:  100      実行
  443:  200      書き込み
  444:  400      読み込み
  445: 
  446:           特別な許可:
  447: 1000      テキストイメージをスワップデバイスに保存
  448: 2000      実行時のグループIDを設定
  449: 4000      実行時のユーザIDを設定
  450: @end example
  451: 
  452: 例えば,数値的なモードの4755は,象徴的なモードの@samp{u=rwxs,go=rx}に,
  453: 数値的なモードの664は,象徴的なモードの@samp{ug=rw,o=r}に対応します.数
  454: 値的なモードの0は,象徴的なモードの@samp{ugo=}に対応します.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>