名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項
chmod ユーティリティはファイルモードの変更や割り当てを行います。 ファイルモードは、アクセス権、およびその他の属性を指定するものです。 モードには、絶対モード (absolute mode) とシンボリックモード (symbolic mode) があります。
chmod [options] absolute-mode file . . .
0 から 7 の数字を表します。 絶対モードは、以下のモードのいくつかの論理和をとったものです。
4000 実行時にユーザー ID を設定します。
# が 7 、 5 、 3 または 1 のとき、 実行時にグループ ID を設定します。
# が 6 、 4 、 2 または 0 のとき、 強制ロックを許可します。
ディレクトリに対して使用されると、グループ ID の継承については BSD のセマンティクスに基づいてファイルが作成されます。 このオプションを使用すると、そのディレクトリ中に作成される ファイルやサブディレクトリは、カレントプロセスのグループ ID ではなく、ディレクトリのグループ ID を引き継ぎます。ディレクトリの場合、set-gid ビットをセットまたはクリアできるのはシンボリックモードを使用する場合だけです。
スティッキビットをオンにします chmod(2) 参照。
所有者による読み取りを許可します。
所有者による書き込みを許可します。
所有者による実行 (ディレクトリ内での検索) を許可します。
所有者による読み取り、書き込み、実行 (検索) を許可します。
グループによる読み取りを許可します。
グループによる書き込みを許可します。
グループによる実行 (ディレクトリ内での検索) を許可します。
グループによる読み取り、書き込み、実行 (検索) を許可します。
その他のユーザーによる読み取りを許可します。
その他のユーザーによる書き込みを許可します。
その他のユーザーによる実行 (ディレクトリ内での検索) を許可します。
その他のユーザーによる読み取り、書き込み、実行 (検索) を許可します。
ディレクトリに対して、絶対モードでは setgid のセットやクリアは行えません。 シンボリックモードで g+s (または g–s) を使って行う必要があります。
シンボリックモードは次の書式で指定します。
chmod [options] symbolic-mode-list file . . .
symbolic-mode-list は、いくつかのシンボリックモードの式をコンマで区切った (空白をはさまない) ものです。 各々の式は、次の形式で記述します。
[who] operator [permissions] |
処理は、記述された順序で実行されます。 1 つの演算子 (operator) の後に permissions として複数のアクセス権文字を指定すると、 その演算子で示された処理が同時に行われます。
u、 g、 o、 a の文字の 1 つ以上の組み合わせ (または省略) で、 誰のアクセス権が変更または割り当てられるのかを指定します。
ユーザーのアクセス権
グループのアクセス権
その他のアクセス権
全アクセス権 (ユーザー、グループ、その他)
アクセス権をどのように変更するかを指定する演算子で、 +、 -、 = のいずれかです。
アクセス権を付加します。permissions を省略すると、何も付加されません。who が省略されると、対応するビットがファイルモード生成マスク中に セットされている場合を除き、 permissions が示すファイルモードビットが付加されます。who が指定されていれば、 permissions が示すファイルモードビットが付加されます
アクセス権を除去します。permissions を省略すると、何も行われません。who が省略されると、対応するビットがファイルモード生成マスク中に セットされている場合を除き、 permissions が示すファイルモードビットをクリアします。who が指定されていれば、 permissions が示すファイルモードビットをクリアします。
指定されたアクセス権をそのまま割り当てます。who が省略されると、すべてのファイルモードビットをクリアします。 who が指定されていれば、 who が示すファイルモードビットをクリアします。 permissions を省略すると、他には何も行われません。who が省略されると、対応するビットがファイルモード生成マスク中に セットされている場合を除き、 permissions が示すファイルモードビットが付加されます。who が指定されていれば、 permissions が示すファイルモードビットが付加されます。 = は、他のシンボリック演算子と違って、 who が示す他のすべてのビットをリセットしてしまう という絶対的な効果があります。 permission の省略は、 = を使用してすべてのアクセス権を除去するときのみ便利です。
強制ロッキング
読み取り権
ユーザーまたはセットグループ ID
スティッキビット
書き込み権
実行権
実行権 (ファイルがディレクトリの場合、または他のユーザークラスのいずれかに実行権がある場合)
permission がそれぞれ現在のユーザー、グループ、 またはその他のモードから除去されることを意味します。
ファイルへのアクセス権は、ユーザー ID 番号 (UID) およびグループ ID 番号 (GID) によって異なります。アクセス権は、 3 つのユーザーモードがそれぞれ 3 つの文字を持つように記述されます。
ユーザー グループ その他 rwx rwx rwx |
この例 (ユーザー、グループ、その他が、当該ファイルの読み取り、書き込み、 実行権を持っている) は、アクセス権を与える際の 2 つのカテゴリを示しています。 1 つはアクセスクラス、もう 1 つはアクセス権そのものです。 文字 s は、 u または g と一緒に指定したときのみ有効です。 また、 t は u とのみ指定できます。
強制的なファイルおよびレコードのロック (l) は、プログラムがアクセスしている間、そのファイルの読み込み、 書き込み権がロックされることを意味します。
セットグループ ID ビットがオンになっているディレクトリは、 'ls –ld' で -----s--- または -----l--- が出力されることで判定できますが、このようなディレクトリ中で ファイルやサブディレクトリを生成する際には、 その親ディレクトリのセットグループ ID が与えられます。カレントプロセスの セットグループ ID ではありません。
グループ実行権を与えて、 同時に実行時にファイルをロックすることはできません。 さらに、セットグループ ID ビットをオンにして同時に実行時にファイルをロックすることはできません。 したがって、以下の例は無効であり、エラーメッセージが出力されます。
chmod g+x,+l file chmod g+s,+l file |
ファイルまたはディレクトリの所有者 (またはスーパーユーザー) だけが そのファイルまたはディレクトリのモードを変更できます。 スーパーユーザーだけがディレクトリでないファイルの スティッキビットを設定できます。 スーパーユーザーでなければ、 chmod はスティッキビットをマスクしますが、エラーは返しません。 ファイルのセットグループ ID ビットをオンにするには、自分自身のグループ ID がファイルのそれと一致していて、 さらにグループ実行権が設定されていなければなりません。
以下のオプションを指定できます。
強制実行。 chmod はファイルモードの変更に失敗しても何もしません。
再帰的にディレクトリの階層をたどって、 上述のように各ファイルのモードを変更していきます。 シンボリックリンクに出合うと、対象のファイルのモードが変更されます。 しかし、再帰は発生しません。
以下のオペランドを指定できます。
file オペランドのいずれかで指定された各ファイルのファイルモードビットに加えられる変更を示します。詳細については、前途の「絶対モード」と「シンボリックモード」の項を参照してください。
ファイルモードビットを変更するファイルのパス名
ファイルが 2 ギガバイト (231 バイト) 以上ある場合の chmod の動作については、 largefile(5) を参照してください。
example% chmod a–x file |
example% chmod 444 file |
example% chmod go+rw file example% chmod 066 file |
example% chmod +l file |
example% chmod =rwx,g+s file example% chmod 2777 file |
chmod の実行に影響を与える環境変数 LC_CTYPE
、 LC_MESSAGES
、 NLSPATH
についての詳細は、 environ(5) を参照してください。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
CSI | 対応済み |
ディレクトリのセットグループ ID ビットをそっくり置き換えることはできません。 g+s または g–s を使用してください。
chmod は規定に反しないかぎり、無意味なモード作成でも 許可します (たとえば、テキストファイルを実行可能にする) 。 chmod は強制ロックが意味をなすか否かを見るために、 ファイルのタイプをチェックすることはありません。
ファイルシステムが nosuid オプションでマウントされている場合、 setuid の実行は許可されません。
chmod を使用して ACL エントリのファイルのアクセス権を変更すると、ファイルのグループ所有権と ACL マスクの両方が、新しいアクセス権に変わります。新しい ACL マスクのアクセス権は、ファイル上の ACL エントリを所有する追加ユーザーや追加グループの実効アクセス権を変更する場合があることに注意してください。getfacl(1) コマンドを使用して、すべての ACL エントリに対する適切なアクセス権を確認してください。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項