
新Linux入門|chmodコマンドによるパーミッション設定とアクセス制御
Linuxでは、複数のユーザーが同じシステムを利用します。
そのため「誰がどのファイルにどんな操作をできるのか」を決めることがとても重要です。
このアクセス制御の中心的な役割を担うのが chmodコマンド です。
ここでは、hmodコマンドによるパーミッション(アクセス権)の設定方法をわかりやすく解説します。

🔒chmodコマンドとは?
chmod(Change Mode)コマンド は、ファイルやディレクトリのアクセス権(パーミッション)を変更するコマンドです。
このコマンドを使うことで、所有者(User)、グループ(Group)、その他のユーザー(Others)に対して、「読み取り(r)」「書き込み(w)」「実行(x)」の権限を柔軟に設定することができます。
💡 例えば
- ファイルを編集できる人を制限したい。
- プログラムを実行できるユーザーを決めたい。
- チーム共有ディレクトリのアクセス範囲をコントロールしたい。
といったときに使用します。
コマンド書式
chmod [オプション] モード ファイル名またはディレクトリ名| 項目 | 説明 |
|---|---|
| モード | 権限の設定内容を指定します(記号式または数値式)。 |
| ファイル名/ディレクトリ名 | 権限を変更したい対象を指定します。 |
| オプション | 動作を制御する追加設定です(例:-Rで再帰的変更)。 |
主なオプション一覧
| オプション | 説明 |
|---|---|
| -c | 変更が行われた場合にメッセージを表示する。 |
| -v | 変更の詳細をすべて表示する。 |
| -R | 指定したディレクトリ以下を再帰的に処理する。 |
💡 ポイント
- ディレクトリ全体のアクセス権を一括変更したい場合は、-R オプションをよく使います。
- -v は変更状況を確認したいときに便利です。
🧠 アクセス権の基本(r, w, x)
| 権限 | 記号 | 意味 | ファイルでの動作 | ディレクトリでの動作 |
|---|---|---|---|---|
| 読み取り | r | read | ファイルの内容を表示できる | ファイル一覧を表示できる。 |
| 書き込み | w | write | ファイルを変更できる | ファイルやフォルダを作成・削除できる。 |
| 実行 | x | execute | プログラムとして実行できる | ディレクトリ内に移動できる。 |
🧩 chmodコマンドのアクセス権記号
chmodコマンドでは、「誰に」「どの権限を」「どう操作するか」 を記号で表します。
| 分類 | 記号 | 意味 |
|---|---|---|
| 操作対象 | u | 所有者(User) |
| g | グループ(Group) | |
| o | その他のユーザー(Others) | |
| a | 全員(All = u+g+o) | |
| 操作方法 | + | 権限を追加する |
| - | 権限を削除する | |
| = | 権限を指定したものに置き換える | |
| アクセス権 | r | 読み取り権 |
| w | 書き込み権 | |
| x | 実行権 |
💡 例えば「chmod g+x file.txt」は「グループ(g)に実行権(x)を追加する」という意味になります。
🧮 数値による権限指定(数値モード)
chmodでは、アクセス権を**数値(8進数)**で指定することもできます。
それぞれの権限は以下の値を持ちます。
| 権限 | 記号 | 値 |
|---|---|---|
| 読み取り | r | 4 |
| 書き込み | w | 2 |
| 実行 | x | 1 |
この値を合計して、3桁の数字で指定します。
例
chmod 755 script.sh| 区分 | 設定値 | 意味 |
|---|---|---|
| 所有者 | 7 (4+2+1) | 読み・書き・実行すべて許可 |
| グループ | 5 (4+1) | 読み・実行のみ |
| その他 | 5 (4+1) | 読み・実行のみ |
→ この場合、ファイル script.sh は所有者がすべての操作を行え、他の人は読み取りと実行のみ可能です。
🧰 chmodコマンドの使用例と解説
① 基本の使用例:実行権を追加
ファイル file.txt に実行権を追加します。
[root@AlmaLinux ~]# chmod +x file.txt📘 ポイント
「+x」で全員(a=u+g+o)に実行権を追加します。
スクリプトファイルなどを実行可能にするときによく使われます。
② 所有者・グループ・その他を個別に指定
所有者には読み書き可(rw)、グループとその他は権限なしにします。
[root@AlmaLinux ~]# chmod u=rw,go= file.txt[root@AlmaLinux ~]# chmod u=rw,go= file.txt
📘 説明
「u=rw」は所有者だけが読み書き可能、「go=」でグループとその他の権限を削除しています。
最も基本的なアクセス制御の1つです。
③ 再帰的な権限変更
project ディレクトリとその中のすべてのファイルに、所有者へ書き込み権限を追加します。
[root@AlmaLinux ~]# chmod -R u+w project📘 説明
「-R」は「Recursive(再帰的)」の略です。
ディレクトリ階層全体を一括で変更できるので、プロジェクト単位で権限を設定したい場合に便利です。
④ 数値指定で一括設定
すべてのユーザーが読み取り可能、所有者のみ書き込み可能にします。
[root@AlmaLinux ~]# chmod 644 report.txt📘 解説
「6(rw)」は所有者の読み書き可、「4(r)」はその他への読み取り許可。
文書ファイルの標準的な設定です。
📊 主なchmodの使用パターンまとめ
| 操作内容 | コマンド例 | 意味 |
|---|---|---|
| 実行権を追加 | chmod +x file.sh | 実行可能にする。 |
| 書き込み権を削除 | chmod -w file.txt | 誤削除・編集防止 |
| 所有者にすべて許可 | chmod u+rwx file | 所有者だけが自由に操作可 |
| 数値指定(一般的) | chmod 755 script.sh | 所有者:全許可、他:実行のみ |
| 再帰的変更 | chmod -R 644 dir | ディレクトリ配下すべてを変更 |
✅ まとめ
| 内容 | コマンド例 | 効果 |
|---|---|---|
| 実行権の追加 | chmod +x script.sh | スクリプトを実行可能にする。 |
| 権限を明示的に指定 | chmod u=rw,go= file.txt | 所有者のみ読み書き可 |
| ディレクトリ配下をまとめて変更 | chmod -R 755 /var/www | サブディレクトリ含め変更 |
| 数値指定で変更 | chmod 644 data.txt | 所有者:rw、他:rのみ |
chmodコマンドは、Linuxのセキュリティ管理に欠かせない基本コマンドです。
誤った設定は思わぬトラブルを招くこともあるため、「誰に」「どんな権限を」 与えるかを意識して使いましょう。
システムを安全に保つための第一歩は、chmodの正しい理解から始まります。
