chmod コマンドを使用すると、ファイルまたはディレクトリのアクセス許可を変更できます。オブジェクトの権限を変更できるのは、ファイルまたはディレクトリの所有者、またはシステム管理者のみです。
構文
chmod コマンドの構文は次のとおりです。
# chmod [options] {mode} {file/ directory name}
chmod コマンド オプション
chmod コマンドは、権限を変更するためのさまざまなオプションをサポートしています。これらのオプションの 1 つ以上を一度に使用できます。
オプション | 説明 |
---|---|
-c | パーミッションに加えられた変更を報告します。 |
-f | ほとんどのエラー メッセージを非表示にします。 |
-v | 処理されたすべてのファイルの診断エントリを表示します。 |
-R | ファイルとディレクトリのパーミッションを再帰的に変更します。 |
ファイル システム オブジェクトに適用されるパーミッション ビットは、次のコマンドで chmod ユーティリティに提供される 4 桁のタプルで指定できる値に直接対応します:
# chmod abcd [file system object]
数字セット abcd の各値は、値 1 2 および 4 の合計で構成されます。数字ごとにこれらの値を加算することにより、すべてのファイル オブジェクト属性を設定する値を生成できます。
- あ – この桁は、特別な属性設定を制御します。値 1 は setuid ビットを設定し、値 2 は setgid ビットを設定し、値 4 はオブジェクトのスティッキー ビットを設定します。
- b、c、d – これらの数字は、ファイル所有者、ファイル所有者の 1 次グループ、およびその他すべてのユーザーの読み取り/書き込みおよび実行許可を制御します。値 4 は読み取り許可を有効にし、値 2 は書き込み許可を有効にし、値 1 は実行許可を有効にします。
ファイル file をスティッキー、所有者による読み取りおよび書き込み可能、プライマリ グループによる読み取り可能、その他のユーザーによるアクセス不可に設定するには:
# chmod 4610 filename
システム上の全員にすべての許可を与えるには:
# chmod 0777 filename
chmod コマンドの実行中に以下のエラーが発生した場合:
chmod: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:
分布 | コマンド |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
アルパイン | apk add coreutils |
Arch Linux | pacman -S coreutils |
カリ Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fedora | dnf install coreutils |
Raspbian | apt-get install coreutils |
chmod コマンドの例
1. ファイルを所有する[ユーザー]に、ファイルを実行[x]する権利を与える:
# chmod u+x path/to/file
2. [u]ser にファイル/ディレクトリの [r]read および [write] 権限を与える:
# chmod u+rw path/to/file_or_directory
3. [g]グループから実行[x]実行可能な権限を削除します:
# chmod g-x path/to/file
4. [すべてのユーザーに [r]read と e[x]ecute の権限を与える:
# chmod a+rx path/to/file
5. [他の] (ファイル所有者のグループではない) [g]グループと同じ権限を与える:
# chmod o=g path/to/file
6.[その他]からすべての権利を削除します:
# chmod o= path/to/file
7. パーミッションを再帰的に変更して、[g]group と [o]others に [write] 権限を与える:
# chmod -R g+w,o+w path/to/directory
8. [a]すべてのユーザーにファイルへの[r]readパーミッションと、ディレクトリ内のサブディレクトリへのe[X]ecuteパーミッションを再帰的に与える:
# chmod -R a+rX path/to/directory
結論
Unix および Linux システムでは、chmod ユーティリティを使用して、ファイルとディレクトリにアクセス許可の値を設定します。ファイルまたはディレクトリのユーザー、ファイルまたはディレクトリに関連付けられているグループなどのアクセス許可を設定できます。 3 つの基本的な権限は次のとおりです。
- r :読み取り許可を示します。
- w :書き込み許可を示します。
- × :実行権限です。任意のタイプのプログラム ファイルまたはディレクトリに適用できます。ディレクトリに実行権限を適用すると、承認されたユーザーがそのディレクトリに cd できるようになります。