chmod コマンド

ファイルやディレクトリのモードビット(パーミッション)を変更します。

概要

chmod コマンドは、Unix系システムでファイルやディレクトリのパーミッションを変更するコマンドです。アクセスモードを変更することで、誰がファイルを読み取り、書き込み、または実行できるかを制御できます。パーミッションは、シンボリック表記(文字)またはオクタル表記(数字)のいずれかを使用して指定できます。

オプション

-R, --recursive

パーミッションを再帰的に変更し、指定されたディレクトリ内のすべてのファイルとディレクトリに影響を与えます。

$ chmod -R 755 projects/

-v, --verbose

処理されるすべてのファイルについて、変更内容を示す診断メッセージを表示します。

$ chmod -v 644 file.txt
mode of 'file.txt' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--)

-c, --changes

verboseと似ていますが、実際に変更が行われた場合のみ報告します。

$ chmod -c 644 file.txt
mode of 'file.txt' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--)

-f, --silent, --quiet

ほとんどのエラーメッセージを抑制します。

$ chmod -f 644 nonexistent.txt

使用例

オクタル表記の使用

$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 user group 1024 May 5 10:00 script.sh

シンボリック表記の使用

$ chmod u+x script.sh
$ ls -l script.sh
-rwxr--r-- 1 user group 1024 May 5 10:00 script.sh

複数のパーミッションの追加

$ chmod u+rwx,g+rx,o+r file.txt
$ ls -l file.txt
-rwxr-xr-- 1 user group 1024 May 5 10:00 file.txt

パーミッションの削除

$ chmod go-w file.txt
$ ls -l file.txt
-rw-r--r-- 1 user group 1024 May 5 10:00 file.txt

ヒント:

オクタル表記の理解

オクタル表記の3桁は、所有者、グループ、その他のユーザーのパーミッションを表します:

一般的な組み合わせ:

シンボリック表記の効果的な使用

デフォルトパーミッションの設定

新しく作成されるファイルとディレクトリのデフォルトパーミッションを制御するには umask を使用します。

よくある質問

Q1. オクタル表記とシンボリック表記の違いは何ですか?

A. オクタル表記(755など)は数字を使用して正確なパーミッションを設定しますが、シンボリック表記(u+xなど)は他のパーミッションを変更せずに特定のパーミッションを追加または削除できます。

Q2. ファイルを実行可能にするにはどうすればよいですか?

A. chmod +x ファイル名 または chmod u+x ファイル名 を使用して、所有者が実行できるようにします。

Q3. 機密ファイルにはどのようなパーミッションを使用すべきですか?

A. 機密ファイルには、600 (rw-------)のような制限的なパーミッションを使用し、所有者のみが読み書きできるようにします。

Q4. ディレクトリ内のすべてのファイルのパーミッションを変更するにはどうすればよいですか?

A. 再帰オプションを使用します:chmod -R パーミッション ディレクトリ/

参考文献

https://www.gnu.org/software/coreutils/manual/html_node/chmod-invocation.html

改訂履歴