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

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

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

Linuxは複数のユーザが1台のコンピュータを共有して使うことを前提に設計されています。そのため、どのファイルに誰がどこまで触れてよいかを、ファイルごとに細かく決められる仕組みを持っています。これがパーミッション(アクセス権)です。家のどの部屋に誰が入ってよいかを決める鍵のようなもので、設定が適切なら他人による盗み見や書き換え、不正なプログラムの実行を防げますが、ゆるすぎると情報漏えいやシステムの乗っ取りにつながります。逆に厳しすぎると、必要な人が必要なファイルを読めずに作業が止まります。仕組みを正しく理解することが、そのままセキュリティと運用の基礎になります。

3つの権限と3つの区分

パーミッションは「何ができるか」を3種類、「誰に対してか」を3区分で表します。できることは、読み込み(r:read)、書き込み(w:write)、実行(x:execute)の3つです。対象となる相手は、そのファイルの持ち主である所有者(owner)、所有者と同じグループに属するメンバーであるグループ(group)、そのどちらでもないその他すべて(other)の3区分です。つまり1つのファイルに対して、所有者の rwx・グループの rwx・その他の rwx という、3×3=9個の許可フラグが設定されている、と考えると整理しやすくなります。グループという区分があるおかげで、たとえば開発チームのメンバーだけに書き込みを許す、といった柔軟な共有ができます。

ls -l で読み解く

現在の設定は ls -l で確認できます。行頭に -rw-r--r-- や drwxr-xr-x のような10文字の並びが表示され、これがパーミッションです。先頭の1文字は種類を表し、- なら通常ファイル、d ならディレクトリ、l ならシンボリックリンクを意味します。残りの9文字を3文字ずつ区切って、左から所有者・グループ・その他の権限を読みます。たとえば -rw-r--r-- は、所有者が読み書き可(rw-)、グループとその他は読み取りのみ(r--)、という意味になります。該当する位置に文字があれば許可、- になっていれば不許可です。パーミッションの右側には所有者名とグループ名も並ぶので、「誰のファイルで、誰にどこまで許されているか」が1行でまとめて読み取れます。

ディレクトリでは rwx の意味がファイルと少し変わる点に注意が必要です。ディレクトリに対する r は中身を一覧できること、w は中にファイルを作ったり消したり名前を変えたりできること、x はそのディレクトリに cd で入れること(通り抜けられること)を、それぞれ表します。とくに x が無いとディレクトリを通過できないため、その先のファイルにいくら権限があってもたどり着けません。逆に、あるディレクトリに w があると、その中のファイル自体に書き込み権が無くても削除できてしまう点も、ディレクトリ権限ならではの落とし穴です。

chmod で変更する — 数字表記と文字表記

権限を変更するコマンドが chmod(change mode)です。指定方法は2通りあり、ひとつは数字(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、というのがよくある設定です。慣れると 644 や 755 を見ただけで権限の形が頭に浮かぶようになります。

もうひとつは文字表記で、対象・操作・権限を組み合わせます。対象は u(所有者)・g(グループ)・o(その他)・a(すべて)、操作は +(権限を追加)・-(権限を剥奪)・=(指定した値に固定)、権限は r・w・x です。たとえば 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 で解決します。これは初学者がほぼ必ず一度はつまずくポイントなので、覚えておくと回り道を減らせます。

所有者の変更 chown と実務上の勘どころ

ファイルの所有者やグループを変えるには chown(change owner)を使います。chown ユーザ名 file で所有者を、chown ユーザ名:グループ名 file で両方を一度に変更でき、グループだけなら chgrp グループ名 file も使えます。ここで重要なのは、自分が所有していないファイルの権限や所有者を変えるには管理者権限(sudo)が必要だということです。そして管理者である root ユーザは、パーミッションの審査を無条件で通過し、すべてにアクセスできます。強力なぶん危険でもあるので、root での作業は最小限にとどめるのが鉄則です。実務では、Webサーバの公開ファイルを 644、CGIスクリプトを 755 にするなど、必要十分な権限だけを与える「最小権限の原則」を意識すると、安全性と利便性のバランスが取れます。権限まわりで「動かない」と悩んだら、まず ls -l で現状の rwx と所有者を確認する——これが調査の出発点です。

この項目に出てくる用語

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

関連コマンド

lschmodchown

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