このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:パーミッションの設定

パーミッションの設定

 Linuxでは、すべてのファイルやディレクトリに「所有者」と「所有グループ」が設定されています。しかし、所有者やグループだけではアクセスの制御は十分ではありません。複数のユーザーがシステムを利用する環境では、誰がファイルを読み取れるのか、誰が編集できるのか、誰が実行できるのかを細かく制御する必要があります。これを可能にする仕組みが パーミッション(アクセス権) です。

 パーミッションは「読み取り(read: r)」「書き込み(write: w)」「実行(execute: x)」の3つの権限で構成されており、それぞれ所有者・所有グループ・その他のユーザーごとに設定されます。適切なパーミッションを設定することで、セキュリティを確保しながら効率的にファイルを利用できます。

1.パーミッションの基礎

1.1. パーミッションとは

パーミッションは次の3種類の権限で構成されます。

権限記号数値ファイルの場合ディレクトリの場合
読み取りr4ファイル内容を読むファイル名一覧を表示
書き込みw2ファイル内容を編集ファイルの作成・削除
実行x1プログラムを実行ディレクトリに移動可能

これらは所有者・グループ・その他のユーザーごとに割り当てられます。

1.2. パーミッションの確認

パーミッションは ls -l コマンドで確認できます。

使用例

[user@rocky9 ~]$ ls -l file1.txt
-rw-r--r--. 1 tanaka user 55  8月 24 15:21 file1.txt

この出力から以下の情報が分かります。

  • rw- → 所有者(tanaka)は読み取り・書き込み可能
  • r-- → グループ(user)は読み取りのみ可能
  • r-- → その他のユーザーも読み取りのみ可能

つまり、このファイルは tanaka が編集でき、他のユーザーは閲覧のみ可能 です。

2.chmodコマンドによるパーミッションの変更

2.1. コマンドの書式

パーミッションを変更するには chmod コマンドを使用します。

chmod [オプション] モード ファイル名

2.2. 主なオプション

オプション説明
-Rディレクトリ以下を再帰的に変更
-v変更内容を表示

2.3. モードの指定方法

モードには「記号表記」と「数値表記」の2種類があります。

記号表記

  • u(所有者)、g(グループ)、o(その他)、a(すべて)
  • +(付与)、-(削除)、=(指定)

例: 所有者に実行権を追加

chmod u+x file1.txt

数値表記

権限の数値(r=4, w=2, x=1)を合計して指定します。

例: 所有者に読み書き、グループとその他に読み取りを付与(644)

chmod 644 file1.txt

3.ファイルとディレクトリの違い

3.1. ファイルのパーミッション

例: rw-r----- の場合

  • 所有者は読み書き可能
  • グループは読み取りのみ可能
  • その他はアクセス不可

3.2. ディレクトリのパーミッション

ディレクトリの場合、意味が少し異なります。

権限ディレクトリでの意味
rファイル一覧を表示できる。
wファイルの作成・削除が可能
xディレクトリに移動できる。

3.3. 実行例

【例1】ディレクトリの読み取り権のみ

まず、workディレクトリに読み取り権限のみを付与します。

[user@rocky9 ~]$ chmod 400 work
[user@rocky9 ~]$ ls -ld work
dr--------. 2 user user 28  8月 29 22:41 work

次に、workディレクトリに移動します。

[user@rocky9 ~]$ cd work
bash: cd: work: 許可がありません

一覧は表示できても、中に移動はできません。

【例2】書き込み権の影響

imagesディレクトリのパーミッションを変更します。

[user@rocky9 ~]$ chmod 555 images
[user@rocky9 ~]$ ls -ld images
dr-xr-xr-x. 2 user user 24  8月 31 00:11 images
[user@rocky9 ~]$ ls -l images
合計 44
-rw-r--r--. 1 user user 44111  8月 29 22:42 dragon.jpg

imagesディレクトリの中にあるdragon.jpgを削除します。

[user@rocky9 ~]$ rm images/dragon.jpg 
rm: 'images/dragon.jpg' を削除できません: 許可がありません

削除にはディレクトリ自体に書き込み権が必要です。

まとめ

  • パーミッションは「r」「w」「x」の3種類で構成される。
  • 所有者・所有グループ・その他ユーザーごとに設定できる。
  • ls -l で確認、chmod で変更可能。
  • 記号表記と数値表記の両方がある。
  • ディレクトリのパーミッションは「移動」「一覧」「作成・削除」に影響する。

 パーミッションを適切に設定することで、ファイルやディレクトリのセキュリティを強化し、不正なアクセスや意図しない操作を防ぐことができます。