新Linux入門|ディレクトリのパーミッション設定とアクセス制御の仕組み

 Linuxでは、ディレクトリにもファイルと同じように「パーミッション(アクセス権)」が設定されています。
 パーミッションを正しく理解しておくことで、チームでのファイル共有やセキュリティ管理がスムーズになります。

この記事では、ディレクトリにおけるパーミッションの意味と設定方法をわかりやすく解説します。

🧩 ディレクトリとファイルのパーミッションの違い

 まず押さえておきたいのは、「ファイル」と「ディレクトリ」では同じ r(読み取り)・w(書き込み)・x(実行) の権限でも意味が異なるということです。

権限ファイルの場合ディレクトリの場合
r(読み取り)ファイル内容を表示できる。ディレクトリ内のファイル名一覧を表示できる。
w(書き込み)ファイル内容を変更できる。ファイルやサブディレクトリを作成・削除できる。
x(実行)ファイルを実行できる(スクリプト等)。cdコマンドでディレクトリ内に移動できる。

💡 ファイルでは「内容」に対する権限ですが、ディレクトリでは「中身(構造)」に対する権限と考えると理解しやすいです。

📂 ディレクトリの読み取り権(r)

「読み取り権(r)」があると、ディレクトリ内のファイル名やサブディレクトリの一覧を表示できます。
つまり、ls コマンドで中身を確認できるようになります。

使用例

[root@AlmaLinux ~]# chmod +r project

これで、ディレクトリ project に読み取り権限が追加されます。
ただし、読み取り権だけでは中のファイルを開くことはできません。
cdで移動したり、catで内容を確認するには実行権(x)も必要です。

確認例

[suzuki@AlmaLinux ~]$ ls -l
dr--r--r-- 2 suzuki sales 4096 Oct 29 11:00 project

この場合、ファイル一覧は見られますが、中に入ることはできません。

🧾 ディレクトリの書き込み権(w)

 「書き込み権(w)」があると、ディレクトリ内で新しいファイルやサブディレクトリを作成したり、既存のファイルを削除したりできます。

使用例

[root@AlmaLinux ~]# chmod +w project

これで、project ディレクトリに書き込み権限が追加されます。
ただし、書き込み権だけではファイル名一覧を確認できません
実用上は「r」と「x」を組み合わせて設定するのが一般的です。

補足

  • 誤って他のユーザーに「w」だけを許可すると、削除操作ができてしまうため注意が必要です。
  • 共有ディレクトリでは「他人のファイルを消せる」状況を防ぐために、適切な権限管理が求められます。

🚪 ディレクトリの実行権(x)

「実行権(x)」は、ディレクトリの中に「入る」ための権限です。
この権限がないと、cdコマンドで移動できません。

使用例

[root@AlmaLinux ~]# chmod +x project

これで、ユーザーは cd project を実行してディレクトリ内に入ることができるようになります。

確認例

[suzuki@AlmaLinux ~]$ cd project
[suzuki@AlmaLinux project]$ 

💡 実行権は「ドアの鍵」のようなものです。
開ける(入る)ためには「x」が必要、そして中を見たいなら「r」も必要です。

🧩 ディレクトリ権限の総合例

複数の権限を一度に設定することも可能です。

使用例

[root@AlmaLinux ~]# chmod +rwx project

これで、ディレクトリ project に対して「読み取り・書き込み・実行」のすべての権限を付与します。
誰でも中を見て、変更して、移動できるようになります。

⚠️ ただし、実際の運用ではセキュリティ上のリスクがあるため、必要最低限の権限のみを与えるようにしましょう。

🔍 ディレクトリのパーミッションを確認する

ls -ld コマンドを使用すると、ディレクトリ自体のパーミッションを確認できます。

使用例

[suzuki@AlmaLinux ~]$ ls -ld project
drwxr-xr-- 2 suzuki sales 4096 Oct 29 11:00 project

出力の意味

項目内容
dディレクトリを表す
rwx所有者(suzuki)の権限:読み取り・書き込み・実行可
r-xグループ(sales)の権限:読み取り・実行可
r--その他ユーザーの権限:読み取りのみ
suzuki所有者
salesグループ名

🧮 ユーザー・グループ・その他の設定例

パーミッションは、所有者(u)、グループ(g)、その他のユーザー(o)に分けて設定できます。

使用例

[root@AlmaLinux ~]# chmod u+rwx,g+rx,o-rw project

このコマンドの意味は以下の通りです。

区分権限説明
所有者(u)+rwx読み・書き・実行すべて許可
グループ(g)+rx読み取りと移動のみ許可
その他(o)-rw読み書きを禁止

💡 各ユーザー区分に合わせて、アクセスレベルをきめ細かくコントロールできます。

🧰 chmodコマンドの概要

ディレクトリのパーミッション変更には chmod コマンドを使用します。

コマンド書式

chmod [オプション] [モード] [ディレクトリ名]

主なオプション

オプション説明
-Rディレクトリ配下を再帰的に変更する。
-v変更内容を詳細に表示する。
-c変更があった場合のみ出力する。

再帰的変更の例

[root@AlmaLinux ~]# chmod -R 755 project

→ project 以下のすべてのファイル・サブディレクトリに同じ権限を適用します。

🚫 権限の削除

不要な権限を削除する場合は、マイナス(-)を使います。

使用例

[root@AlmaLinux ~]# chmod -w project

このコマンドで、書き込み権限を削除します。
これにより、ファイルの追加や削除ができなくなります。

✅ まとめ

操作内容コマンド例効果
読み取り権を付与chmod +r projectディレクトリ内容の一覧表示が可能
書き込み権を付与chmod +w projectファイルの追加・削除が可能
実行権を付与chmod +x projectcdでディレクトリに移動可能
権限をすべて付与chmod +rwx project全ての操作が可能
権限を削除chmod -w project書き込みを禁止
再帰的変更chmod -R 755 project配下すべてに適用

ディレクトリのパーミッションを正しく設定することは、Linuxのセキュリティ管理の基本です。
 「誰が中を見られるのか」「誰が変更できるのか」を意識して、常に必要最小限の権限に留めるようにしましょう。