パーミッション(permission)は、UNIX系OSにおけるアクセス権の制御を行うための基本かつ不可欠な概念です。
ファイルやディレクトリの読み取り・書き込み・実行といった操作を、誰に許可するかを明確に定義することで、システムの安全性と整合性を保ちます。
この記事では、UNIX/Linuxシステムで日常的に使用されるパーミッションの仕組みや設定方法を、実例を交えながら詳しく解説します。
ITエンジニアやシステム管理者はもちろん、UNIXに触れ始めた初心者にも役立つ内容です。
パーミッションとは何か?
アクセス制御の基本
UNIX系のファイルシステムでは、すべてのファイルやディレクトリに対して「誰が」「どの操作を」行えるかを細かく定義できます。
これがパーミッションです。
アクセス制御の対象は、以下の3つのユーザーカテゴリに分かれています。
-
Owner(所有者):ファイルを作成したユーザー
-
Group(グループ):所有者が属するユーザーグループ
-
Other(その他):上記以外のすべてのユーザー
それぞれに対し、次の3つの権限(アクセスモード)を設定できます。
パーミッションの表現形式
記号表記(lsコマンドで確認)
ファイルのパーミッションは、ls -l
コマンドを使うことで確認できます。
以下のような形式で出力されます。
この文字列は、以下の意味を持ちます:
-
-
:通常ファイル(d
ならディレクトリ) -
rw-
:Ownerの権限(読み書き可) -
r--
:Groupの権限(読み取りのみ) -
r--
:Otherの権限(読み取りのみ)
数値表記(chmodコマンドで使用)
数値表記は、chmodコマンドでパーミッションを変更する際によく使われます。
例えば chmod 755 filename
とすると:
-
Owner:
7 = rwx
(すべて許可) -
Group:
5 = r-x
(読み込み・実行) -
Other:
5 = r-x
(読み込み・実行)
chmodコマンドの実践的な使い方
基本構文
シンボリックモードでの変更
この例では、script.sh
に対して、ユーザー(u)に実行権限(+x)を追加します。
パーミッションの応用例とベストプラクティス
Webサーバー構成における適切なパーミッション
ApacheやNginxなどのWebサーバーでは、公開ファイルやスクリプトのパーミッション管理がセキュリティに直結します。
-
HTML/PHPファイル:
644
(オーナーが書き込み可、他は読み取りのみ) -
ディレクトリ:
755
-
実行ファイル(スクリプトなど):
755
注意:777
のように全ユーザーに全権限を与える設定は、セキュリティ上極めて危険です。極力避けましょう。
バックアップスクリプトの安全な運用
このように設定すれば、スクリプトの実行権限を所有者のみに制限でき、他のユーザーからの誤操作を防げます。
<h1>Windowsとの違い</h1>
UNIX系のパーミッションモデルは、Windowsのアクセス制御リスト(ACL)とは設計思想が異なります。
Windowsではより細かいアクセス制御が可能ですが、その分複雑でもあります。
UNIXではシンプルな3カテゴリ × 3権限というモデルにより、シェルから直感的に管理できるのが特徴です。
まとめ
パーミッションは、UNIX系OSにおいてシステムのセキュリティや運用効率を支える根幹的な要素です。
-
Owner / Group / Other の3種類のユーザーに
-
read / write / execute の3種類の権限を割り当て
-
chmod
コマンドを活用して柔軟に制御できる
特にサーバー運用やプログラム開発に関わるITエンジニアは、正確な理解と設定スキルが求められます。
適切なパーミッション管理は、セキュリティ強化・トラブル防止・運用自動化に直結するため、常に意識して運用に取り入れていきましょう。