chmod コマンド

目的

ファイル・モードを変更します。

構文

ファイル・モードを記号で変更する

ChMOD [ -R ] [ -h ] [ 「-f」 ] [ [ U ] [ G ] [ O ] | [ A ] ] { { - | + | = } [ R ] [ W ] [ X ] [ X ] [ S ] [ T ] } { ファイル ... | ディレクトリー ... }

ファイル・モードを数値で変更する

chmod [ -R ] [ -h ] [ -f ] PermissionCode { ファイル ... | ディレクトリー ... }

説明

chmod コマンドは、指定されたファイルまたはディレクトリーのモード・ビットと拡張アクセス制御リスト (ACL) を変更します。 モードは、記号または数値 (絶対モード) で定義します。

シンボリック・リンクがあった場合に、-h フラグを指定していなければ、chmod コマンドはリンクそのもののモードではなく、リンクが指し示すファイルまたはディレクトリーのモードを変更します。 -h フラグを指定すると、chmod コマンドはこのモードを変更しなくなります。

-h フラグと -R フラグを指定した場合、chmod コマンドは指定されたディレクトリーを再帰的に下降し、シンボリック・リンクがあっても、リンクが指し示すファイルまたはディレクトリーのモードを変更しません。

フラグ

項目 説明
-f 無効な許可と使用状況ステートメントを除き、すべてのエラー・メッセージを表示しないようにします。
-h 発見されたシンボリック・リンクが指し示すファイルまたはディレクトリーのモード変更を抑制します。

注: シンボリック・リンクにはモード・ビットを設定できないので、この動作は chgrp コマンドおよび chown コマンドの -h フラグの動作とはやや異なります。

-R パターン File...|Directory... の指定に従ってディレクトリーのみを再帰的に下降します。 -R フラグは、指定したパターンに一致する各ディレクトリーとすべてのファイルのファイル・モード・ビットを変更します。 例 6 を参照してください。

シンボリック・リンクがあり、そのリンクがディレクトリーを指している場合、そのディレクトリーのファイル・モード・ビットは変更されますが、ディレクトリーはそれ以上変更されません。

記号モード

記号フォーマットでモードを指定するには、以下の 3 組のフラグを指定しなければなりません。

注: フラグはスペースで区切らないでください。

1 組目のフラグは指定した許可を与えるユーザーまたは禁止するユーザーを指定します。以下のようなフラグがあります。

項目 説明
u ファイルのオーナー。
g グループと、ファイルのグループに関連する拡張 ACL エントリー。
O 他のすべてのユーザー。
a ユーザー、グループ、他のすべてのユーザー。 a フラグは、ugo フラグを同時に指定するのと同じ効果があります。 これらのフラグを指定しない場合、デフォルトの a フラグが設定され、ファイル作成マスク (umask) が適用されます。

2 組目のフラグは許可を除去するか、適用するか、または設定するかを指定します。以下のようなフラグがあります。

項目 説明
- 指定した許可を除去します。
+ 指定した許可を適用します。
= 選択した許可フィールドをクリアし、それを指定した許可に設定します。 = の後ろに許可を指定しない場合は、chmod コマンドは、選択したフィールドからすべての許可を除去します。

3 組目のフラグは除去、適用、または設定する許可を指定します。以下のようなフラグがあります。

項目 説明
r 読み取り許可。
w 書き込み許可。
x ファイルの実行許可 (ディレクトリーの場合は検索許可)。
x 現行 (未変更) モード・ビットにユーザー、グループ、または他の実行ビットが少なくとも 1 つ設定されている場合は、ファイルの実行許可。 File パラメーターが指定され、現行モード・ビットに実行ビットが設定されていない場合、 X フラグは無視されます。

ディレクトリーの場合は検索許可。

s u フラグを指定または暗黙指定している場合は、Set-User-ID-On 実行許可。 g フラグを指定または暗黙指定している場合は、Set-Group-ID-On 実行許可。
t ディレクトリーの場合は、指定したディレクトリー内のファイルをリンクしたり、リンク解除できるのは、ファイル・オーナーだけであることを示します。 ファイルの場合は、save-text 属性を設定します。

数値 (絶対) モード

chmod コマンドでは、モードの設定に 8 進表記を使用できます。 数値モードは、以下の 1 つ以上の値の和です。

項目 説明
4000 実行時にユーザー ID を設定します。
2000 実行時にグループ ID を設定します。
1000 ディレクトリーに対してリンク許可を設定、またはファイルの save-text 属性を設定します。
0400 オーナーによる読み取りを許可します。
0200 オーナーによる書き込みを許可します。
0100 オーナーによる実行または検索を許可します。
0040 グループによる読み取りを許可します。
0020 グループによる書き込みを許可します。
9999 グループによる実行または検索を許可します。
0004 他のユーザーによる読み取りを許可します。
0002 他のユーザーによる書き込みを許可します。
0001 他のユーザーによる実行または検索を許可します。
注:
  1. モードを数値で指定すると、すべての拡張 ACL が使用不可になります。 詳しくは、「 オペレーティング・システムおよびデバイスの管理 」の「アクセス制御リスト」を参照してください。
  2. グループ権限を記号で変更すると、 AIXC ACL エントリーにも影響があります。 ACL 内の、ファイルを所有するグループに等しいグループのエントリーには、モードから除去された許可は与えられません。 詳しくは、「 オペレーティング・システムおよびデバイスの管理 」の「アクセス制御リスト」を参照してください。
  3. 複数の記号モードをコンマで区切って指定できます。 処理は左から右に指定された順に実行されます。
  4. ディレクトリーから set-group-ID-on-execution 許可を除去する場合は、モードを記号で指定するか、ゼロから始まる明示的な 4 文字の 8 進数 (例えば、0755) を使用する必要があります。
  5. ファイルシステム・オブジェクトに関連する非 AIXC の ACL に対して、 モード・ビットでの基本アクセス権ビット (rwxrwxrwx) の変更操作をもたらすような要求を記号または数値で行うことは、 現在の ACL を単なるモード・ビットと置き換える原因となります。
  6. save-text 属性を設定できるのは root ユーザーだけですが、標準ユーザーであっても削除はできます。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 コマンドは正常に実行され、要求された変更はすべて完了しました。
>0 エラーが発生しました。

セキュリティー

アクセス制御

このプログラムを、トラステッド・コンピューティング・ベースに通常のユーザー・プログラムとしてインストールしてください。

ファイルのモードを変更できるのは、そのファイルのオーナーまたは root ユーザーだけです。

RBAC ユーザーおよび Trusted AIX® ユーザーへの注意: このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. 複数のファイルにアクセス権のタイプを追加するには、以下のようにします。
    chmod  g+w  chap1  chap2
    これにより、グループ・メンバーの書き込み許可がファイルに追加されます。chap1およびchap2.
  2. 一度に複数の許可を変更するには、以下のようにします。
    chmod  go-w+x  mydir
    これにより、グループ・メンバーおよびその他のユーザーに対して、ファイルを作成または削除する許可が拒否されます。mydir(go-w)。グループ・メンバーおよびその他のユーザーが検索できるようにします。mydirまたは、パス名 (go + x) で使用します。 これは、以下のコマンド・シーケンスと同等です。
    chmod  g-w  mydir
    chmod  o-w  mydir
    chmod  g+x  mydir
    chmod  o+x  mydir
  3. シェル・プロシージャーをコマンドとして使用することを所有者だけに許可するには、次のようにします。
    chmod  u=rwx,go= cmd
    これにより、ファイルを所有するユーザーに、読み取り、書き込み、および実行許可が与えられます (u=rwx)。 また、グループおよびその他のユーザーのアクセス許可も拒否します。cmd任意の方法で (go=)。

    以下を実行する権限がある場合:cmdシェル・コマンド・ファイルの場合は、次のように入力して実行することができます。

    cmd

    注: PATH シェル変数によっては、以下のものへの絶対パスを指定しなければならない場合があります。cmdを適用します。

  4. Set-ID モードを使用するには、以下のようにします。
    chmod  ug+s  cmd
    使用中のcmdコマンドが実行されると、有効なユーザー ID およびグループ ID は、cmdを適用します。 以下を実行する子プロセスに関連付けられた有効 ID のみcmdコマンドが変更されます。 シェル・セッションの実効 ID は変更されません。

    この機能は、制限付きファイルへのアクセス権をユーザーに許可するときに使用します。 以下のように仮定します。cmdプログラムで Set-User-ID モードが使用可能になっていて、プログラムの所有者がdbms. ユーザーdbms実際には人ではありませんが、データベース管理システムに関連付けられている可能性があります。 ユーザーbetty以下のいずれかにアクセスする権限がありませんdbmsのデータ・ファイル。 ただし、以下を実行する許可を持っています。cmdコマンド。 これを行うと、有効ユーザー ID が一時的に以下のように変更されます。dbmsということになります。cmdプログラムは、ユーザーが所有するデータ・ファイルにアクセスできます。dbms.

    この方法でユーザーはbettyを使用できます。cmdコマンドを使用してデータ・ファイルにアクセスすることはできますが、標準シェル・コマンドを使用してデータ・ファイルを誤って損傷することはありません。

  5. chmod コマンドの絶対モード形式を使用するには、以下のようにします。
    chmod  644  text
    これにより、オーナーの読み取り/書き込み許可が設定されます。また、読み取り専用モードがグループと他のユーザーに対して設定されます。 このコマンドは、ファイルに関連する可能性のあるすべての拡張 ACL も除去します。
  6. ツリー構造を指定して、ディレクトリーを再帰的に下降し、ファイルとディレクトリーの許可を変更するには、以下のようにします。

    ./dir1/dir2/file1

    ./dir1/dir2/file2

    ./dir1/file1

    以下のコマンド・シーケンスを入力します。

    chmod -R 777 f*
    このコマンドにより、./dir1/file1 の許可が変更されます。

    ただし、以下のようなツリー構造の場合は異なります。

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

    以下のコマンド・シーケンスを入力します。

    chmod -R 777 f*
    以下の許可が変更されます。

    ./dir1/fdir2

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

ファイル

項目 説明
/usr/bin/chmod chmod コマンドが入っています。