chmod - ファイルモードビットの変更
構文
chmod [オプション]... モード[,モード]... ファイル...
chmod [オプション]... 8進モード ファイル...
chmod [オプション]... --reference=参照ファイル ファイル...
説明
このマニュアルページは、GNUバージョンのchmodについて説明します。chmodは、指定された各ファイルのファイルモードビットを、モードに従って変更します。モードは、変更を行うための記号的な表現、または新しいモードビットのビットパターンを表す8進数にすることができます。
記号的なモードの形式は、[ugoa...][[-+=][パーミッション...]...]です。ここで、パーミッションはrwxXstのセットからの1つ以上の文字、またはugoのセットからの単一の文字です。複数の記号的なモードを指定する場合は、カンマで区切ります。
文字ugoaの組み合わせは、ファイルのアクセスを変更するユーザーを制御します。ファイルの所有者(u)、ファイルのグループ内の他のユーザー(g)、ファイルのグループに属さない他のユーザー(o)、またはすべてのユーザー(a)です。これらの文字が指定されていない場合、その効果は(a)が指定された場合と同じですが、umaskで設定されたビットは影響を受けません。
演算子+は、選択されたファイルモードビットを各ファイルの既存のファイルモードビットに追加します。-は、それらを削除します。=は、それらを追加し、指定されていないビットを削除します。ただし、ディレクトリの指定されていないセットユーザーIDおよびセットグループIDビットは影響を受けません。
文字rwxXstは、影響を受けるユーザーのファイルモードビットを選択します。読み取り(r)、書き込み(w)、実行(またはディレクトリの場合は検索)(x)、ファイルがディレクトリであるか、すでに一部のユーザーに対して実行権限を持っている場合にのみ実行/検索(X)、実行時にセットユーザーIDまたはセットグループID(s)、制限付き削除フラグまたはスティッキービット(t)です。1つ以上のこれらの文字の代わりに、文字ugoの1つだけを指定できます。これは、ファイルの所有者(u)に付与される権限、ファイルのグループのメンバーである他のユーザーに付与される権限(g)、および上記の2つのカテゴリのいずれにも属さないユーザーに付与される権限(o)です。
数値モードは、1〜4の8進数(0〜7)です。これは、4、2、および1の値を持つビットを加算して導き出されます。省略された桁は、先頭にゼロがあるものと見なされます。最初の桁は、セットユーザーID(4)、セットグループID(2)、および制限付き削除またはスティッキー(1)属性を選択します。2番目の桁は、ファイルの所有者に付与される権限を選択します。読み取り(4)、書き込み(2)、および実行(1)。3番目は、ファイルのグループ内の他のユーザーに対する権限を選択し、同じ値を使用します。4番目は、ファイルのグループに属さない他のユーザーに対する権限を選択し、同じ値を使用します。
chmodは、シンボリックリンクの権限を変更しません。chmodシステムコールは、ほとんどのシステムでそれらの権限を変更できず、ほとんどのシステムではシンボリックリンクの権限を無視します。ただし、コマンドラインの各シンボリックリンクについて、chmodは指しているファイルの権限を変更します。対照的に、chmodは再帰的なディレクトリトラバーサル中に遭遇するシンボリックリンクを無視します。この動作を変更するオプションは、オプションセクションで説明します。
SETUID および SETGID ビット
chmod は、ファイルのグループ ID がユーザーの有効グループ ID またはユーザーの補足グループ ID のいずれとも一致しない場合、通常ファイルの set-group-ID ビットをクリアします。ただし、ユーザーが適切な権限を持っている場合は例外です。さらに、追加の制限により、MODE または RFILE の set-user-ID および set-group-ID ビットが無視される場合があります。この動作は、基になる chmod システムコールのポリシーと機能によって異なります。不明な場合は、基になるシステムの動作を確認してください。
ディレクトリの場合、chmod は set-user-ID および set-group-ID ビットを保持します。ただし、u+s や g-s などのシンボリックモードで明示的に指定してビットをクリアすることもできます。ディレクトリの数値モードでこれらのビットをクリアするには、先頭に 00 (例: 00755)、またはマイナス記号 (-6000)、またはイコール記号 (=755) を追加する必要があります。
制限付き削除フラグまたはスティッキービット
制限付き削除フラグまたはスティッキービットは、単一のビットであり、その解釈はファイルの種類によって異なります。ディレクトリの場合、権限のないユーザーが、ファイルまたはディレクトリを所有しているか、ディレクトリ自体を所有している場合に限り、ディレクトリ内のファイルまたはディレクトリを削除または名前変更できないようにします。これは、ディレクトリに対する制限付き削除フラグと呼ばれ、/tmp のような、世界に書き込み可能なディレクトリでよく使用されます。一部の古いシステムでは、通常ファイルの場合、このビットはプログラムのテキストイメージをスワップデバイスに保存し、プログラムが実行されるときに高速にロードできるようにします。これは、スティッキービットと呼ばれます。
オプション
各ファイルのモードを MODE に変更します。--reference オプションを使用すると、各ファイルのモードを RFILE のモードに変更します。
-c, --changes
詳細出力を表示しますが、変更が行われた場合にのみ報告します
-f, --silent, --quiet
ほとんどのエラーメッセージを抑制します
-v, --verbose
処理された各ファイルについて診断情報を出力します
--dereference
各シンボリックリンクではなく、シンボリックリンクが参照するファイルを対象とします
-h, --no-dereference
各シンボリックリンクを対象とし、参照するファイルは対象としません
--no-preserve-root
'/' を特別に扱わない (デフォルト)
--preserve-root
'/' に対して再帰的に操作することを許可しません
--reference=RFILE
MODE 値の代わりに RFILE のモードを使用します。RFILE は常にシンボリックリンクの場合は参照解除されます。
-R, --recursive
ファイルとディレクトリを再帰的に変更します
次のオプションは、-R オプションも指定されている場合に、階層をどのようにトラバースするかを修正します。複数のオプションが指定されている場合、最後のオプションのみが有効になります。-H がデフォルトです。
-H コマンドライン引数がディレクトリへのシンボリックリンクである場合、そのリンクをたどります
-L 遭遇するすべてのディレクトリへのシンボリックリンクをたどります
-P シンボリックリンクを辿らない
--help このヘルプを表示して終了する
--version
バージョン情報を表示して終了する
各モードは、'[ugoa]\*(\[-+=\]([rwxXst]\*|[ugo]))+|\[-+=\][0-7]+' の形式です。
著者
David MacKenzie および Jim Meyering 著。
バグ報告
GNU coreutils オンラインヘルプ: [https://www.gnu.org/software/coreutils/] 翻訳に関するバグは [https://translationproject.org/team/] に報告してください。
関連項目
chmod(2)
完全なドキュメント [https://www.gnu.org/software/coreutils/chmod] またはローカルで利用可能: info '(coreutils) chmod invocation'
Debian によってパッケージ化 (9.7-3) Copyright © 2025 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL バージョン 3 以降 [https://gnu.org/licenses/gpl.html]。 これはフリーソフトウェアです。変更および再配布が可能です。 法で許可されている範囲において、いかなる保証もありません。