File:  [Local Repository] / gnujdoc / findutils-4.1 / perm-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Fri Sep 7 13:19:39 2001 UTC (19 years, 1 month ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Add findutils-1.4, and some bug fix.

    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 append-only directories
   71: スワップデバイス上のプログラムのテキストイメージを保存するので,実行時に
   72: より速くロードされます(@dfn{sticky bit}と呼ばれます).いくつかのシステム
   73: のディレクトリに対しては,ユーザがそのディレクトリで所有していないファイ
   74: ルを削除することを妨げます.これは@dfn{追加のみ}のディレクトリ作成と呼ば
   75: れます.
   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: @node Copying Permissions
  209: @subsection 既存の許可をコピー
  210: 
  211: @cindex copying existing permissions
  212: @cindex permissions, copying existing
  213: ファイルの許可を,既存の許可の部分を基準にすることができます.こうするた
  214: めに,オペレータの後に@samp{r},@samp{w}や@samp{x}を使用する代わりに,文
  215: 字@samp{u},@samp{g}や@samp{o}を使用します.例えば以下のモードです.
  216: 
  217: @example
  218: o+g
  219: @end example
  220: 
  221: @noindent
  222: @c FIXME describe the ls -l notation for showing permissions.
  223: それは,ファイルのグループにいるユーザに対する許可を,その他のユーザがそ
  224: のファイルに対して持っている許可に加えます.このため,ファイルが最初にモー
  225: ド664 (@samp{rw-rw-r--})の場合,上記のモードは,それを666
  226: (@samp{rw-rw-rw-})に変更します.ファイルが最初にモード741
  227: (@samp{rwxr----x})の場合,上記のモードは,それを745 (@samp{rwxr--r-x})に
  228: 変更します.@samp{-}と@samp{=}の処理は同様に働きます.
  229: 
  230: 
  231: @node Changing Special Permissions
  232: @subsection 特定の許可を変更
  233: 
  234: @cindex changing special permissions
  235: ファイルの読み込み,書き込み,そして実行の許可の変更に加えて,特別な許可
  236: を変更できます.許可の概要は,@xref{Mode Structure}.
  237: 
  238: 実行時にファイルの許可をユーザIDに設定するため,象徴的なモードの
  239: @var{users}部での@samp{u}と,@var{permissions}部での@samp{s}を使用してく
  240: ださい.
  241: 
  242: 実行時にファイルの許可をグループIDに設定するため,象徴的なモードの
  243: @var{users}部での@samp{g}と@var{permissions}部での@samp{s}を使用してくだ
  244: さい.
  245: 
  246: スワップデバイスに永久に残すファイルの許可を変更するため,象徴的なモード
  247: の@var{users}部での@samp{o}と@var{permissions}部での@samp{t}を使用してく
  248: ださい.
  249: 
  250: 例えば,ユーザID許可をプログラムに加えるため,以下のモードを使用可能です.
  251: 
  252: @example
  253: u+s
  254: @end example
  255: 
  256: ユーザIDのとグループIDの許可の設定をそれから削除するため,以下のモードを
  257: 使用可能です.
  258: 
  259: @example
  260: ug-s
  261: @end example
  262: 
  263: プログラムがスワップデバイスに保存されるようにするため,以下のモードを使
  264: 用可能です.
  265: 
  266: @example
  267: o+t
  268: @end example
  269: 
  270: 特別な許可は実行形式のファイルと,いくつかのシステムのディレクトリ(そこ
  271: では異なる意味を持ちます.@pxref{Mode Structure})のみに効果があることを,
  272: 覚えておいてください.象徴的なモードの@var{users}部で@samp{a}を持ちいた
  273: 場合,特別な許可は効果がありません.このため,以下の例を考えます.
  274: 
  275: @example
  276: a+s
  277: @end example
  278: 
  279: @noindent
  280: これは,@emph{全く効果がありません}.特別な許可を効果的にするために,
  281: @samp{u},@samp{g}と,@samp{o}を明示的に使用する必要があります.また,
  282: @samp{u+t},@samp{g+t}と,@samp{o+s}の組み合わせも効果がありません.
  283: 
  284: @samp{=}オペレータは,特別な許可に用いる場合,全く役に立ちません.例えば,
  285: モードを以下のようにします.
  286: 
  287: @example
  288: o=t
  289: @end example
  290: 
  291: @noindent
  292: これは,ファイルをスワップデバイスに保存するようにしますが,それは,ファ
  293: イルのグループにいないユーザが持っている可能性のある,全ての,読み込み,
  294: 書き込み,そして実行の許可を削除します.
  295: 
  296: 
  297: @node Conditional Executability
  298: @subsection 実行可能の条件
  299: 
  300: @cindex conditional executability
  301: 象徴的な許可の特別な形式がもう1つあります.@samp{x}の代わりに@samp{X}を
  302: 用いた場合,実行許可は,既に実行形式があるファイル,またはディレクトリの
  303: みに効果があります.それは,ディレクトリが最初にあらゆる実行許可を持って
  304: いない場合でも,ディレクトリの実行許可に効果があります.
  305: 
  306: 例えば,このようなモードにします.
  307: 
  308: @example
  309: a+X
  310: @end example
  311: 
  312: @noindent
  313: これは,全てのユーザに,それまでに持っていなかった,ファイルの実行(やディ
  314: レクトリの検索)の許可を与えます.
  315: 
  316: 
  317: @node Multiple Changes
  318: @subsection 複数の変更
  319: 
  320: @cindex multiple changes to permissions
  321: 象徴的なモードの書式は,実際に上記で記述したより複雑です(@pxref{Setting
  322: Permissions}).それは,ファイルの許可を複数変更する2つの方法を提供します.
  323: 
  324: 最初の方法は,象徴的なモードで,複数の@var{operation}部と
  325: @var{permissions}部を@var{users}部の後で指定する方法です.
  326: 
  327: 例えば,以下のようなモードにします.
  328: 
  329: @example
  330: og+rX-w
  331: @end example
  332: 
  333: @noindent
  334: これは,ファイルの所有者以外のユーザに,ファイルの読み込み許可を与え,そ
  335: れがディレクトリの場合や,既に誰かに実行形式の許可がある場合,実行許可を
  336: 与えます.そして,それはファイルの書き込み許可を禁止します.それはファイ
  337: ルの所有者が持つ許可に影響しません.上記のモードは以下の2つのモードと同
  338: じです.
  339: 
  340: @example
  341: og+rX
  342: og-w
  343: @end example
  344: 
  345: 複数の変更をするための2番目の方法は,カンマで分けられた,単純な象徴的な
  346: モードを1つの以上の指定することです.例えば,以下のようなモードにします.
  347: 
  348: @example
  349: a+r,go-w
  350: @end example
  351: 
  352: @noindent
  353: これは,全員にファイルの読み込み許可を与え,所有者以外全員の書き込み許可
  354: を削除します.もう1つの例です.
  355: 
  356: @example
  357: u=rwx,g=rx,o=
  358: @end example
  359: 
  360: @noindent
  361: これは,ファイルに明示的に特別でない許可の全てを設定します.(それはファ
  362: イルのグループではないユーザに,許可を全く与えません.)
  363: 
  364: 2つの方法は組み合わせ可能です.以下のモードになります.
  365: 
  366: @example
  367: a+r,g+x-w
  368: @end example
  369: 
  370: @noindent
  371: これは,全てのユーザに,ファイルの読み込み許可を与え,ファイルのグループ
  372: にいるユーザに実行許可も与えますが,書き込み許可は与えません.上記のモー
  373: ドは異なる方法で書くこともできます.その1つは以下になります.
  374: 
  375: @example
  376: u+r,g+rx,o+r,g-w
  377: @end example
  378: 
  379: 
  380: @node Umask and Protection
  381: @subsection umaskと保護
  382: 
  383: @cindex umask and modes
  384: @cindex modes and umask
  385: 象徴的なモードの@var{users}部が省略された場合,システム変数@code{umask} 
  386: で@emph{無効に}@emph{設定されている}あらゆる許可以外,デフォルトは
  387: @samp{a}(で,全てのユーザに影響します).@code{umask}の値は@code{umask}コ
  388: マンドを使用して設定できます.そのデフォルト値は,システム毎に異なります.
  389: 
  390: @cindex giving away permissions
  391: 象徴的なモードの@var{users}部の省略は,@samp{+}以外のオペレーションでは
  392: 一般に役に立ちません.希望しないファイルに対する余分な許可を与えるために,
  393: 簡単にカスタマイズ可能な保護として@code{umask}が使用可能なので,それは
  394: @samp{+}とともに用いると役に立ちます.
  395: 
  396: 例として,@code{umask}の値が2の場合,それはファイルのグループ以外のユー
  397: ザに対し書き込み許可を削除します.以下のモードを考えます.
  398: 
  399: @example
  400: +w
  401: @end example
  402: 
  403: @noindent
  404: これは,その所有者とファイルのグループのユーザに対する書き込み許可を加え
  405: ますが,それ以外のユーザには与え@emph{ません}.対照的に,以下のモードを
  406: 考えます.
  407: 
  408: @example
  409: a+w
  410: @end example
  411: 
  412: @noindent
  413: これは@code{umask}を無視し,全てのユーザに対し,書き込み許可を与える
  414: @emph{のです}.
  415: 
  416: 
  417: @node Numeric Modes
  418: @section 数値的なモード
  419: 
  420: @cindex numeric modes
  421: @cindex file permissions, numeric
  422: @cindex octal numbers for file modes
  423: ファイルの許可は,内部では16ビットの整数で保存されます.象徴的なモードの
  424: 代わりとして,新しいモードの内部に対応した適切な8進数(基数8)で与えること
  425: ができます.この数は常に8進数で処理されます.Cで行うような,前置される0 
  426: は不要です.モード0055はモード55と同じです.
  427: 
  428: 数値的なモードは,通常対応する象徴的なモードより短くなりますが,ファイル
  429: の前の許可を考慮にいれることに制限があります.それは絶対的な設定が可能な
  430: だけです.
  431: 
  432: ユーザ,ファイルのグループのその他のユーザ,そしてファイルのグループでは
  433: ないその他のユーザに応じた許可は,それぞれ3つのビットになり,それは1つの
  434: 8進数として表現されます.ここに16ビットの整数にアレンジされたビットがあ
  435: り,最下位ビットからはじめます.
  436: 
  437: @example
  438: 対応する値
  439: モード    許可
  440: 
  441:           ファイルのグループにいないその他のユーザ:
  442:    1      実行
  443:    2      書き込み
  444:    4      読み込み
  445: 
  446:           ファイルのグループのその他のユーザ:
  447:   10      実行
  448:   20      書き込み
  449:   40      読み込み
  450: 
  451:           ファイルの所有者:
  452:  100      実行
  453:  200      書き込み
  454:  400      読み込み
  455: 
  456:           特別な許可:
  457: 1000      テキストイメージをスワップデバイスに保存
  458: 2000      実行時のグループIDを設定
  459: 4000      実行時のユーザIDを設定
  460: @end example
  461: 
  462: 例えば,数値的なモードの4755は,象徴的なモードの@samp{u=rwxs,go=rx}に,
  463: 数値的なモードの664は,象徴的なモードの@samp{ug=rw,o=r}に対応します.数
  464: 値的なモードの0は,象徴的なモードの@samp{ugo=}に対応します.

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