🐧 Linux 総合学習プラットフォーム
基本操作・コマンド ・ 入門

パーミッション(アクセス権)

Linuxの各ファイルには「誰が・何をできるか」の権限が設定されています。読み(r)・書き(w)・実行(x)の3種類を、所有者・グループ・その他の3区分ごとに持ちます。ls -l で現在の権限を確認し、chmod で変更します。数字表記では r=4・w=2・x=1 を足し、644 なら所有者rw・他は読み取りのみ、を意味します。

1台のコンピュータを何人もが共有しているとき、誰でも他人のファイルを読み書きできてしまったら困る。それを防ぐのがパーミッション(アクセス権)だ。

Linuxは、複数のユーザが1台を共有して使うことを前提に設計されている。そのため、どのファイルに誰がどこまで触れてよいかを、ファイルごとに細かく決められる仕組みを持つ。

🔗
たとえパーミッションは、家のどの部屋に誰が入ってよいかを決める鍵のようなもの。設定が適切なら、盗み見や書き換え、不正な実行を防げる。

家のどの部屋に誰が入ってよいかを決める鍵のようなものだ。設定が適切なら、他人による盗み見や書き換え、不正なプログラムの実行を防げる。

ゆるすぎると情報漏えいやシステムの乗っ取りにつながる。逆に厳しすぎると、必要な人が必要なファイルを読めずに作業が止まる。この仕組みを正しく理解することが、そのままセキュリティと運用の基礎になる。

🔐 「何ができるか」×「誰に対してか」

パーミッションを読み解く鍵は、2つの軸を掛け合わせて考えることにある。「何ができるか」を3種類、「誰に対してか」を3区分で表すのだ。

3×3=9個の許可フラグ誰に対してrwx読み込み書き込み実行所有者 ownerグループ groupその他 other も含め、3区分 × rwx で 9個

できることは、読み込み(r:read)、書き込み(w:write)、実行(x:execute)の3つ。

対象となる相手は、そのファイルの持ち主である所有者(owner)、所有者と同じグループに属するメンバーであるグループ(group)、そのどちらでもないその他すべて(other)の3区分だ。

💡
ポイント1つのファイルには、所有者の rwx・グループの rwx・その他の rwx という 3×3=9個の許可フラグがある、と捉えると整理しやすい。

つまり1つのファイルに対して、所有者の rwx・グループの rwx・その他の rwx という、3×3=9個の許可フラグが設定されている、と考えると整理しやすい。

グループという中間の区分があるおかげで、たとえば開発チームのメンバーだけに書き込みを許す、といった柔軟な共有ができる。

🔎 設定を ls -l で読む

理屈が分かったら、実際の設定を ls -l で確認してみよう。行頭に -rw-r--r-- や drwxr-xr-x のような10文字の並びが表示され、これがパーミッションだ。

ls -l の行頭 -rw-r--r-- は、先頭1文字が種類(- 通常ファイル / d ディレクトリ / l シンボリックリンク)、残り9文字を3文字ずつ所有者・グループ・その他と読む。

先頭の1文字は種類を表す。- なら通常ファイル、d ならディレクトリ、l ならシンボリックリンクを意味する(前にディレクトリ移動で見た、あの行頭の d だ)。

残りの9文字を3文字ずつ区切って、左から所有者・グループ・その他の権限を読む。

たとえば -rw-r--r-- は、所有者が読み書き可(rw-)、グループとその他は読み取りのみ(r--)、という意味になる。該当する位置に文字があれば許可、- になっていれば不許可だ。

パーミッションの右側には所有者名とグループ名も並ぶので、「誰のファイルで、誰にどこまで許されているか」が1行でまとめて読み取れる。

ここで一つ、見落とすと混乱するポイントがある。ディレクトリでは rwx の意味がファイルと少し変わるのだ。

つまずきディレクトリの rwx は意味が変わる。r は中身を一覧、w はファイルの作成・削除・改名、x は cd で入れること。x が無いとその先にたどり着けない。

ディレクトリに対する r は中身を一覧できること、w は中にファイルを作ったり消したり名前を変えたりできること、x はそのディレクトリに cd で入れること(通り抜けられること)を、それぞれ表す。

とくに x が無いとディレクトリを通過できないため、その先のファイルにいくら権限があってもたどり着けない。

逆に、あるディレクトリに w があると、その中のファイル自体に書き込み権が無くても削除できてしまう。これもディレクトリ権限ならではの落とし穴だ。

🔢 数字表記と文字表記、2つの指定方法

現状を読めるようになったら、次は変えたくなる。権限を変更するコマンドが chmod(change mode)だ。指定方法が2通りあるのが、最初の戸惑いどころになる。

r=4 ・ w=2 ・ x=1 を足し合わせるrwx4+2+1 = 7r-x4+0+1 = 5r--4+0+0 = 4所有者グループその他chmod 755 file

ひとつは数字(8進数)表記だ。r=4・w=2・x=1 と値を割り当て、許可するものを足し合わせて1桁の数字にする。これを所有者・グループ・その他の順に3桁並べる。

たとえば rw-(4+2=6)r--(4)r--(4)は 644、rwx(4+2+1=7)r-x(4+1=5)r-x(4+1=5)は 755 だ。

chmod 644 file ……データファイルは 644、自分だけ読み書きの秘密ファイルは 600、実行スクリプトやディレクトリは 755、がよくある設定だ。

chmod 644 file のように使う。一般的なデータファイルは 644、自分だけが読み書きしたい秘密のファイルは 600、実行したいスクリプトやディレクトリは 755、というのがよくある設定になる。

慣れると 644 や 755 を見ただけで権限の形が頭に浮かぶようになる。

もうひとつの文字表記は、対象・操作・権限を組み合わせる方式だ。

対象は u(所有者)・g(グループ)・o(その他)・a(すべて)、操作は +(権限を追加)・-(権限を剥奪)・=(指定した値に固定)、権限は r・w・x。

コツ文字表記なら chmod g+w file で「グループに書き込みを追加」、chmod o-r file で「その他から読み取りを剥奪」。今の状態から一部だけ足し引きしたいときに向く。

たとえば chmod g+w file は「グループに書き込みを追加」、chmod o-r file は「その他から読み取りを剥奪」、chmod a+x script.sh は「すべてに実行を付与」という意味になる。対象は chmod ug+w file のようにまとめて指定できる。

数字表記は権限を一気に決め打ちするのに向き、文字表記は今の状態から一部だけ足し引きしたいときに向く。状況に応じて使い分ければよい。

🚫 スクリプトが「許可がありません」で動かないとき

数ある権限のなかでも、x(実行権限)の扱いはとくに引っかかりやすい。Linuxは拡張子ではなく x が付いているかどうかでファイルを実行可能なプログラムとして扱うからだ。

バイナリでもテキストのシェルスクリプトでも区別はない。

つまずき自作スクリプトを ./script.sh で動かして「許可がありません(Permission denied)」が出るのは、x が付いていない典型例。chmod +x script.sh で解決する。

自分で書いたスクリプトを ./script.sh として動かそうとして「許可がありません(Permission denied)」と出るのは、x が付いていない典型例で、chmod +x script.sh で解決する。

これは初学者がほぼ必ず一度はつまずくポイントなので、覚えておくと回り道を減らせる。

🛠 つまずいたら、まず ls -l で現状を見る

権限とセットで覚えたいのが所有者の変更だ。ファイルの所有者やグループを変えるには chown(change owner)を使う。

chown ユーザ名 file で所有者を、chown ユーザ名:グループ名 file で両方を変更。グループだけなら chgrp グループ名 file も使える。

chown ユーザ名 file で所有者を、chown ユーザ名:グループ名 file で両方を一度に変更でき、グループだけなら chgrp グループ名 file も使える。

ここで重要なのは、自分が所有していないファイルの権限や所有者を変えるには管理者権限(sudo)が必要だということだ。

💡
ポイント管理者である root は、パーミッションの審査を無条件で通過し、すべてにアクセスできる。強力なぶん危険なので、root での作業は最小限にとどめる。

管理者である root ユーザは、パーミッションの審査を無条件で通過し、すべてにアクセスできる。強力なぶん危険でもあるので、root での作業は最小限にとどめるのが鉄則だ。

実務では、Webサーバの公開ファイルを 644、CGIスクリプトを 755 にするなど、必要十分な権限だけを与える「最小権限の原則」を意識すると、安全性と利便性のバランスが取れる。

権限まわりで「動かない」と悩んだら、まず ls -l で現状の rwx と所有者を確認する。これが調査の出発点になる。

この項目に出てくる用語

パーミッションぱーみっしょん
ファイルに対し誰が何をできるかを定めるアクセス権。
rwxあーるだぶりゅーえっくす
読み(r=4)・書き(w=2)・実行(x=1)の権限記号。

関連コマンド

lschmodchown

▶ 学習アプリでこの続きを学ぶ・演習する