chmod コマンドは、ファイルやディレクトリに設定されている アクセス権限(パーミッション) を変更するためのコマンドです。
実務では、スクリプトに実行権限を与える、Webサーバでファイルの読み取り権限を調整するなどに利用されます。
構文(Syntax)
chmod [オプション] モード ファイル...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 権限を変更 | chmod 644 file.txt |
-R | ディレクトリ以下を再帰的に変更 | chmod -R 755 /var/www/html |
-c | 変更があった場合のみ報告 | chmod -c 644 file.txt |
-v | 詳細な情報を表示 | chmod -v 755 script.sh |
--reference=FILE | 参照ファイルと同じ権限に設定 | chmod --reference=ref.txt target.txt |
モードの指定方法
数値(8進数)指定
r(読み取り) = 4w(書き込み) = 2x(実行) = 1
所有者 / グループ / その他 の順で指定。
例: chmod 754 file.txt
- 所有者:
7(rwx) - グループ:
5(r-x) - その他:
4(r–)
記号指定
u: 所有者g: グループo: その他a: 全員
演算子:
+: 権限を追加-: 権限を削除=: 権限を上書き
例:
chmod u+x script.sh→ 所有者に実行権限を付与chmod go-r file.txt→ グループ・その他から読み取り権限を削除chmod a=r file.txt→ 全員の権限を読み取り専用に設定
実行例
ファイルに実行権限を付与
chmod +x script.sh
数値で権限を変更
chmod 644 file.txt
(所有者: 読み書き、グループとその他: 読み取りのみ)
ディレクトリ配下を一括変更
chmod -R 755 /var/www/html
(所有者: 読み書き実行、グループとその他: 読み実行)
所有者にのみ実行権限を付与
chmod u+x script.sh
参照ファイルと同じ権限を適用
chmod --reference=ref.txt target.txt
エラー例(存在しないファイル)
chmod 644 missing.txt
出力例:
chmod: cannot access 'missing.txt': No such file or directory
関連コマンド
chown: ファイルやディレクトリの所有者・グループを変更chgrp: グループ所有権を変更ls -l: ファイルのパーミッションを確認
備考
- 実行権限を付与しないとシェルスクリプトやバイナリは直接実行できません。
- ディレクトリの場合、
x権限は「ディレクトリに移動できる」ことを意味します。 chmod -Rを不用意に使うとセキュリティ事故につながる可能性があるため注意が必要です。
参考
- manページ: man7.org chmod(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント