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 記号が ug、 または o である場合、無視されます。

clause には、モード・ビットに対して実行する 1 つまたは複数の操作が指定されます。 各操作は指定された順序でモード・ビットに適用されます。

終了状況

  • 0 正常終了。
  • >0 エラー発生。

  1. 絶対モードを使用して、所有者に対する読み取りおよび書き込み許可を認可し、 グループおよびその他のユーザーに対する読み取り許可を認可する場合:
    chmod 644 myfile
  2. グループおよびその他のユーザーに対する書き込み許可を否定する場合:
    chmod go-w myfile
  3. 現在設定されているすべての許可をクリアし、 所有者、グループ、およびその他のユーザーに対する読み取りおよび書き取り許可を認可する場合:
    chmod =rw myfile
  4. ディレクトリー上での検索許可が所有者、グループ、 およびその他のユーザーのいずれか 1 つに対して設定されている場合に、 所有者、グループ、およびその他のユーザーに対する検索許可を認可する場合:
    chmod +X mydir
  5. 絶対モードを使用して、所有者に対する読み取り、書き込み、および実行許可を認可し、 グループおよびその他のユーザーに対する読み取りおよび実行許可を認可する場合:
    chmod 755 myfile
  6. グループおよびその他のユーザーのすべての許可をクリアする場合:
    chmod go= myfile
  7. グループ許可を所有者許可と等しくなるよう設定するが、グループに対する書き込み許可を否定する場合:
    chmod g=u-w myfile
  8. 絶対モードを使用して、実行ビット上にユーザー ID を設定し、 所有者に対する読み取り、書き込み、および実行許可を認可し、その他のユーザーに対する実行許可を認可する場合:
    chmod 4701 myfile