パーミッション
Permission
OS(特にLinuxなどのUNIX系)において、ファイルやディレクトリ(フォルダ)に対して「誰が(所有者・グループ・その他)」「どのような操作(読み取り・書き込み・実行)をできるか」を厳密に定めたアクセス権限のことです。ファイルへの不要なアクセスを制限するための基本的な仕組みです。
🐾 猫で例えると?
キャットタワーの特等席でくつろぐ茶トラ。もしここに「猫は使えるけれど、人は物を置かない」というルールがあるとしたら、誰に何を許すかを決めるパーミッションのイメージになります。ファイルなら「この人は読める」「この人は書き換えられる」と操作ごとに区別します。高い場所にいることではなく、対象ごとに使える相手と操作を決める点が対応しています。
💻 IT現場における「パーミッション」とは?
パーミッションの誤りは、情報の露出や書き込み失敗につながります。調べるときは、操作するプロセスのユーザー、対象の所有者・グループ、親ディレクトリの権限を順に確認します。
UNIX系の「その他」は、そのファイルにアクセスするOS上のユーザーに対する区分です。直ちに世界中から書き込める、という意味ではありません。ただしWebアプリの実行ユーザーに不要な書き込み権限があると、侵害時の影響が大きくなるため、必要な範囲へ絞ります。
⚠️ パーミッションの仕組みと注意点(恐怖の777)
Linux環境では、パーミッションを「読み取り(r=4)」「書き込み(w=2)」「実行(x=1)」という数字の足し算で表現し、それを「所有者」「グループ」「その他」の3桁で設定します。現場でよく使われる chmod コマンドの代表的な数字を見てみましょう。
現場でよく見るパーミッションの数字設定
通常ファイルとディレクトリでは意味が異なります。ディレクトリのrは名前の一覧、xは中の項目へのアクセス、wは項目の追加・削除などに関わります。ファイルの削除は、そのファイルのwだけで決まらない点にも注意します。
# Unix系:まず所有者とモードを確認
ls -ld .
ls -l index.html
# 所有者だけが読めて書ける個人用設定ファイルの例
chmod 600 private.conf
# 公開用の通常ファイルの一例(所有者は読み書き、ほかは読み取り)
chmod 644 index.html 600や644が、どのファイルにも正解というわけではありません。秘密情報を含むファイル、共同作業用のディレクトリ、Web公開物で要件は変わります。動かないからと一律に777へ広げず、必要なユーザーと操作を特定します。
🛠️ パーミッションを賢く管理するためのポイント
システムを安全かつ円滑に運用するための権限管理の基本ルールです。
- 最小権限の原則: システムのユーザーやプロセスには、その作業を行うために「必要最低限の権限」だけを与えます。不必要な書き込み権限や実行権限は絶対に与えてはいけません。
- 実行ユーザーと所有者を区別: Webサーバーが読むファイルを、必ずWebサーバーの所有物にする必要はありません。配信するコードは別の所有者が管理し、Webサーバーには読み取りだけを許す構成もあります。アップロード先など、書き込みが必要な場所を分けます。
- 例外は理由と期限を残す: 特定の利用者へ追加権限が必要なら、グループやACLなどで対象を絞ります。sudoの利用はOS管理の権限に関わるため、通常のファイルアクセスと分けて設計します。
茶トラにも自分だけの場所があるように、ファイルにも操作を許す相手を決めます。アクセスできないときは権限を一律に広げる前に、実行しているユーザー、所有者、必要な操作を確認し、その作業に必要な範囲だけを許可しましょう。