新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)

権限記号意味ファイルでの動作ディレクトリでの動作
読み取りrreadファイルの内容を表示できるファイル一覧を表示できる。
書き込みwwriteファイルを変更できるファイルやフォルダを作成・削除できる。
実行xexecuteプログラムとして実行できるディレクトリ内に移動できる。

🧩 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進数)**で指定することもできます。
それぞれの権限は以下の値を持ちます。

権限記号
読み取りr4
書き込みw2
実行x1

この値を合計して、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の正しい理解から始まります。