chmod - ファイル・モードを変更する
構文
chmod [ -R [-H | -L | -P] ] [ -h ] mode file ...
説明
chmod ユーティリティーは、file のファイル・モード・ビットを mode オペランドに指定された値に変更します。
ファイルのモードを変更するには、次のいずれかの権限が必要です。
- 現行ユーザーには *ALLOBJ 特殊権限がある。
- 現行ユーザーがそのファイルの所有者である。
デフォルトでは、chmod はシンボリック・リンクをたどっていって、シンボリック・リンクが指すファイルのモードを変更します。 シンボリック・リンクにはモードがありません。したがって、シンボリック・リンク上で chmod を使用すると常に正常終了しますが実際には無効です。
-R オプションを指定しない限り、 -H、-L、および -P の各オプションは無視されます。 また、これらのオプションは互いに上書きしあうので、コマンドのアクションは最後に指定されたオプションによって決まります。
chmod はオブジェクトに対する i5/OS™ のデータ権限を変更することに注意してください。CHGAUT CL コマンドを使用して、オブジェクトに対する i5/OS のオブジェクト権限を変更します。
オプション
- -H
- -R オプションを指定すると、コマンド行のシンボリック・リンクがたどられます。 ツリー走査中に検出されたシンボリック・リンクは対象にはなりません。 シンボリック・リンクにはモードがないので、 chmod はシンボリック・リンク上で無効です。
- -L
- -R オプションが指定されている場合は、コマンド行のシンボリック・リンクとツリー走査中に発見されたシンボリック・リンクの両方に従って操作が実行されます。
- -P
- -R オプションが指定されていれば、シンボリック・リンクはたどられません。シンボリック・リンクにはモードがないので、 chmod はシンボリック・リンク上で無効です。
- -R
- file にディレクトリーが指定されている場合、その時点で連結されている全サブツリー中の各ファイルのモードが chmod によって変更されます。
- -h
- シンボリック・リンクはたどられません。 シンボリック・リンクにはモードがないので、 chmod はシンボリック・リンク上で無効です。
オペランド
mode は絶対モードでもシンボリック・モードでも構いません。 絶対モードは、次の値を OR 結合して得られる 3 または 4 桁の 8 進数です。
- 4000
- 実行ビット上にユーザー ID を設定
- 2000
- 実行ビット上にグループ ID を設定
- 1000
- ディレクトリーの制限付き削除ビット
- 0400
- 所有者による読み取り許可
- 0200
- 所有者による書き込み許可
- 0100
- 所有者による実行または検索許可
- 0040
- グループによる読み取り許可
- 0020
- グループによる書き込み許可
- 0010
- グループによる実行または検索許可
- 0004
- その他のユーザーによる読み取り許可
- 0002
- その他のユーザーによる書き込み許可
- 0001
- その他のユーザーによる実行または検索許可
シンボリック・モードの構文規則は以下のようになります。
- mode ::= clause [, clause ...]
- clause ::= [who ...] [action ...] last_action
- action ::= op [perm ...]
- last_action ::= op [perm ...]
- who ::= a | u | g | o
- op ::= + | - | =
- perm ::= r | w | x | X | s | t | u | g | o
who 記号には、以下のように許可が付与または拒否されているユーザーが指定されます。
- u
- 所有者許可ビット
- g
- グループ許可ビット
- o
- その他のユーザーの許可ビット
- a
- 所有者、グループ、その他のユーザーの許可ビット。 これは、ugo 記号を一緒に指定することと同じです。
op 記号は、以下のように実行される操作を表します。
- +
- 指定された許可を付与します。 perm に値が指定されていない場合は、"+" 操作は無効です。 who に値が指定されていない場合に、 perm に指定されている各許可ビットに対して、 ファイル・モード作成マスク中の対応するビットがクリアされていれば、その許可ビットが設定されます。 それ以外の場合は、who および perm の指定値で表されるモード・ビットが設定されます。
- -
- 指定された許可を拒否します。 perm に値が指定されていない場合は、"-" 操作は無効です。 who に値が指定されていない場合に、 perm に指定されている各許可ビットに対して、 ファイル・モード作成マスク中の対応するビットがクリアされていれば、その許可ビットがクリアされます。 それ以外の場合は、who および perm の指定値で表されるモード・ビットがクリアされます。
- =
- 選択された許可フィールドをクリアし、そこに指定された許可を設定します。 who 値で指定されたモード・ビットがクリアされているか、または who 値が指定されていない場合は、所有者、グループ、およびその他のモード・ビットがクリアされます。 その後、who に値が指定されない場合は、perm に指定されている各許可ビットに対応するファイル・モード作成マスクがクリアされていれば、その許可ビットが設定されます。 それ以外の場合は、who および perm の指定値で表されるモード・ビットが設定されます。
perm 記号は、以下のようにモード・ビットの一部を表します。
- r
- 読み取りビット。
- w
- 書き込みビット。
- x
- 実行/検索ビット。
- X
- 対象ファイルがディレクトリーの場合、またはオリジナル (変更前の) モードで実行/検索ビットが設定されている場合は、実行/検索ビット。 この記号による操作が有効になるのは op 記号 "+" と併用した場合のみで、その他の場合はすべて無視されます。
- s
- 所有者許可ビットが設定されている場合は、実行ビット上にユーザー ID を設定し、グループ許可ビットが設定されている場合は実行ビット上にグループ ID を設定します。
- t
- オブジェクトがディレクトリーの場合の制限付き削除ビット。 who 記号が a であるか、または who 記号がない場合に使用できます。 ファイルがディレクトリーでないか、who 記号が u、g、 または o である場合、無視されます。
各 clause には、モード・ビットに対して実行する 1 つまたは複数の操作が指定されます。 各操作は指定された順序でモード・ビットに適用されます。
終了状況
- 0 正常終了。
- >0 エラー発生。
例