Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

パーミッション(パーミッション)とは | 意味や読み方など丁寧でわかりやすい用語解説

パーミッション(パーミッション)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

権限 (ケンゲン)

英語表記

permission (パーミッション)

用語解説

パーミッションとは、ITシステムにおいてファイルやディレクトリといった資源に対し、誰がどのような操作を許可されるかを定義するアクセス権限の仕組みを指す。これは、システムのセキュリティを確保し、誤操作を防ぐ上で極めて重要な役割を果たす。特にUNIXやLinuxといったオペレーティングシステムでは、ファイルやディレクトリの所有者、所属グループ、そしてその他のユーザーに対して、読み込み、書き込み、実行の3種類の操作権限を細かく設定できることが特徴である。これにより、システム管理者や各ユーザーは、機密性の高い情報が不正に閲覧されたり、重要なシステムファイルが誤って変更・削除されたりすることを防ぎ、安定した運用環境を維持することが可能となる。

パーミッションの詳細な仕組みを理解するには、まず「誰が」と「何ができるか」の二つの側面を把握する必要がある。UNIX/Linuxシステムにおいて、ファイルやディレクトリのアクセス主体は大きく分けて三種類存在する。一つ目は「所有者(user)」であり、これは通常、そのファイルやディレクトリを作成したユーザー自身、あるいはシステム管理者によって所有権が変更された特定のユーザーを指す。二つ目は「グループ(group)」で、これは複数のユーザーをまとめて論理的な集団として扱う仕組みであり、同じグループに属するユーザー全員に共通の権限を与えることができる。三つ目は「その他(others)」であり、これは所有者でもなく、所属グループのメンバーでもない、システム上のそれ以外のすべてのユーザーを意味する。

次に「何ができるか」の側面では、以下の三つの基本的な操作権限がある。一つ目は「読み込み(read: r)」権限で、ファイルに対してこの権限がある場合、その内容を表示したり、コピーしたりすることが可能となる。ディレクトリに対してこの権限がある場合は、そのディレクトリに含まれるファイルやサブディレクトリの一覧を表示することができる。二つ目は「書き込み(write: w)」権限で、ファイルに対してこの権限がある場合、その内容を変更したり、新しい内容で上書きしたり、ファイルを削除したりすることが可能となる。ディレクトリに対してこの権限がある場合は、そのディレクトリ内に新しいファイルやサブディレクトリを作成したり、既存のファイルやサブディレクトリの名前を変更したり、削除したりすることが可能となる。三つ目は「実行(execute: x)」権限で、ファイルに対してこの権限がある場合、そのファイルをプログラムやスクリプトとして実行することができる。ディレクトリに対してこの権限がある場合は、そのディレクトリの中に移動したり(cdコマンドなど)、そのディレクトリ内のファイルにアクセスしたりすることが可能となる。

これらの権限は、ls -lコマンドなどで表示される -rwxr-xr-x のような記号で表現される。先頭の1文字はファイルの種類を示し、-は通常ファイルを、dはディレクトリを意味する。続く9文字は3文字ずつに区切られ、左から順に「所有者」「グループ」「その他」に対する権限を示す。例えば rwx は読み込み、書き込み、実行の全ての権限があることを、r-x は読み込みと実行の権限があり、書き込み権限がないことを示す。ハイフン(-)は、その権限がないことを意味する。

また、これらの権限は数値(オクタル表現)でも表現される。読み込み権限は4、書き込み権限は2、実行権限は1という数値が割り当てられており、それぞれの権限がある場合はそれらの数値を合計する。例えば、読み込みと書き込みと実行の全てがある場合は 4+2+1=7、読み込みと実行がある場合は 4+1=5、読み込みのみがある場合は 4 となる。この数値表現を用いると、-rwxr-xr-x は所有者が rwx (7)、グループが r-x (5)、その他が r-x (5) であるため、755 と表現される。

パーミッションの変更には chmod コマンドが用いられ、chmod 755 filename のように数値で指定する方法や、chmod u+w filename(所有者に書き込み権限を追加)のように記号で指定する方法がある。ファイルやディレクトリの所有者を変更するには chown コマンド(通常はスーパーユーザー権限が必要)、グループを変更するには chgrp コマンドを使用する。

適切なパーミッション設定は、システムセキュリティの基礎をなす。例えば、Webサーバーが公開するファイルには、ウェブ閲覧者が読み込み権限を持つ必要はあるが、通常は書き込み権限を持つべきではない。安易にすべてのユーザーに全ての権限を与える chmod 777 のような設定は、セキュリティ上の大きなリスクとなるため避けるべきである。最小権限の原則に基づき、必要なユーザーに必要最低限の権限のみを与えることが推奨される。

Windowsオペレーティングシステムにおいても、NTFSファイルシステムに基づくアクセス制御リスト(ACL)という形でパーミッションに相当する機能が提供されている。UNIX/Linuxのパーミッションとは実装の詳細は異なるものの、特定のユーザーやグループがファイルやフォルダに対してどのような操作を行えるかを制御するという基本的な考え方は共通している。システムエンジニアを目指す上で、このようなアクセス制御の概念を深く理解することは、安全で堅牢なシステムを設計・構築・運用するために不可欠な知識である。

関連コンテンツ

関連ITニュース

関連プログラミング言語