Linuxのパーミッション入門|ファイルの権限と読み書き実行の仕組みを初心者向けに解説


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > Linuxのパーミッション入門|ファイルの権限と読み書き実行の仕組みを初心者向けに解説
「ファイルを編集しようとしたら Permission denied って出て、何もできない。」
「ls -l で表示される rwxr-xr-x って何の暗号?」

Linuxを触り始めた人が最初にぶつかる壁が、この「パーミッション(権限)」です。
Windowsではファイルをダブルクリックすれば開けますし、上書き保存も自由にできます。ところがLinuxでは「誰が」「何をしてよいか」がファイルごとに厳密に決められており、その設定を理解しないと操作が先に進みません。

この記事では、Linuxのパーミッションの仕組みを、Windowsとの違いを交えながら初心者向けに解説します。
「なぜ権限という仕組みがあるのか」「rwxとは何か」「ls -l の読み方」「chmod の基本」までをカバーするので、
読み終えたころには Permission denied の意味がわかり、自分で対処できるようになっています。

実行環境: Ubuntu 24.04 LTS(WSL2)で動作確認済み

この記事のポイント

・パーミッションはLinuxの安全を守る「鍵」の仕組み
・rwxは読み(read)・書き(write)・実行(execute)を意味する
・ls -l の出力で「誰に何が許可されているか」を読み取れる
・chmod コマンドで権限を変更する基本を押さえる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜパーミッション(権限)があるのか?

Linuxは、もともと複数のユーザーが同時にログインして使う「マルチユーザーOS」として設計されています。
会社のサーバーを思い浮かべてください。開発チームのAさん、経理部のBさん、外部の協力会社Cさんが同じサーバーにログインしている状況です。

もし全員がすべてのファイルを自由に読み書きできたら、どうなるでしょうか。

・Aさんが書いたプログラムをCさんが誤って上書きしてしまう
・Bさんの給与計算データをAさんが覗けてしまう
・誰かが間違えてシステムの設定ファイルを消してしまい、サーバーが止まる

こうした事故を防ぐために、Linuxではファイルやディレクトリの一つひとつに「誰が」「何をしてよいか」を設定できるようになっています。
これがパーミッション(permission = 許可)です。

身近な例でいえば、オフィスの鍵と同じです。
自分のデスクの引き出しは自由に開けられるけれど、社長室の鍵は持っていない。サーバールームは特定の管理者しか入れない。
Linuxのパーミッションは、このような「鍵の管理」をファイル単位で行う仕組みです。

Windowsの「アクセス許可」とLinuxの「パーミッション」の違い

実はWindowsにも「アクセス許可」という仕組みがあります。
ファイルを右クリック →「プロパティ」→「セキュリティ」タブを開くと、ユーザーごとの権限を確認できます。
ただ、Windowsでは普段この設定を意識することはほとんどありません。

一方、Linuxではパーミッションが日常的に目に入ります。
ファイルを一覧表示するだけで権限が表示され、権限がないファイルは操作した瞬間にエラーになります。

比較項目 Windows Linux
権限の名前 アクセス許可(ACL) パーミッション
普段の意識 ほとんど意識しない 常に意識する必要がある
確認方法 右クリック → プロパティ → セキュリティ ls -l コマンド一発
権限の単位 ユーザー/グループを細かく追加可能 所有者・グループ・その他の3段階
管理者権限 「管理者として実行」 sudo コマンド
Linuxのパーミッションは、Windowsの「アクセス許可」よりシンプルです。
覚えることが少ない分、一度理解すれば迷うことはありません。

パーミッションの読み方 ~ ls -l の出力を理解する

パーミッションを確認する方法は簡単です。ls -l コマンドを実行するだけです。
実際にやってみましょう。

# ホームディレクトリでファイルの詳細を表示する ls -l

実行結果:

-rw-r--r-- 1 tomohiro tomohiro 1024 Apr 13 10:00 memo.txt drwxr-xr-x 2 tomohiro tomohiro 4096 Apr 13 10:05 projects -rwxr-xr-x 1 tomohiro tomohiro 256 Apr 13 10:10 backup.sh

左端に並んでいる -rw-r--r--drwxr-xr-x がパーミッション表示です。
これは10文字で構成されており、それぞれ意味があります。

1. ファイルタイプ

先頭の1文字目はファイルの種類を示しています。

-通常のファイル
dディレクトリ(フォルダ)
lシンボリックリンク(Windowsでいうショートカット)

先ほどの実行結果でいえば、memo.txt は先頭が - なので通常のファイル、projects は先頭が d なのでディレクトリです。

2. rwx(読み・書き・実行)の意味

2文字目以降の rwx が、実際の権限を表しています。

記号 意味 ファイルの場合 ディレクトリの場合
r read(読み取り) ファイルの中身を読める ディレクトリ内のファイル一覧を見られる
w write(書き込み) ファイルの内容を変更できる ディレクトリ内にファイルを作成・削除できる
x execute(実行) プログラムやスクリプトとして実行できる ディレクトリに cd で移動できる
- 権限なし その操作は許可されていない その操作は許可されていない
ここで注意してほしいのは、ディレクトリの場合の意味がファイルと少し違うことです。
ディレクトリに x(実行権限)がないと、そのディレクトリに cd で入ることすらできません。
実務でよくある「ディレクトリに入れない」というトラブルの原因は、この x 権限が外れているケースです。

3. 所有者・グループ・その他の3段階

rwx が3組並んでいることに気づいたでしょうか。
先ほどの -rw-r--r-- を分解すると、次のようになります。

位置 文字 対象 意味
1文字目 - ファイルタイプ 通常のファイル
2~4文字目 rw- 所有者(owner) 読み書きOK、実行NG
5~7文字目 r-- グループ(group) 読みOK、書き・実行NG
8~10文字目 r-- その他(others) 読みOK、書き・実行NG
つまり -rw-r--r-- は「所有者は読み書きできるが、それ以外の人は読むことしかできない」という設定です。

Windowsとの大きな違いは、Linuxでは権限を「所有者」「グループ」「その他」の3段階でシンプルに管理しているところです。
「このファイルは誰のもので、誰がどこまで触れるのか」が一目でわかるのがLinuxの強みです。

パーミッションを変更する ~ chmod の基本

パーミッションの意味がわかったところで、実際に権限を変更してみましょう。
使うのは chmod(Change Mode)コマンドです。

chmod には「記号モード」と「数値モード」の2つの書き方があります。
どちらも同じことができますが、初心者にはまず記号モードがわかりやすいでしょう。

1. 記号モードで変更する

記号モードは、「誰に」「何を」「追加するか・取り消すか」を直感的に書く方法です。

# backup.shを作成して、中身を書き込む echo '#!/bin/bash' > backup.sh echo 'echo "バックアップ完了"' >> backup.sh # 現在の権限を確認する ls -l backup.sh

実行結果:

-rw-r--r-- 1 tomohiro tomohiro 45 Apr 13 10:15 backup.sh

x(実行権限)がないので、このままでは実行できません。

# 実行しようとするとエラーになる ./backup.sh

実行結果:

-bash: ./backup.sh: Permission denied

所有者に実行権限を追加しましょう。

# 所有者(u)に実行権限(x)を追加する chmod u+x backup.sh # 権限を確認する ls -l backup.sh

実行結果:

-rwxr--r-- 1 tomohiro tomohiro 45 Apr 13 10:15 backup.sh

所有者の部分が rwx に変わりました。これで実行できます。

記号モードの書き方をまとめると、次のとおりです。

u所有者(user)
gグループ(group)
oその他(others)
a全員(all)

+権限を追加
-権限を削除

2. 数値モードで変更する

実務の現場では、数値モード(8進数)で権限を指定する方法のほうが多く使われます。

数値モードでは、r=4、w=2、x=1 として足し算で指定します。

権限 数値 意味
rwx 7 読み+書き+実行(4+2+1)
rw- 6 読み+書き(4+2)
r-x 5 読み+実行(4+1)
r-- 4 読みのみ(4)
--- 0 権限なし
これを所有者・グループ・その他の順に3桁で並べます。

# 所有者=rwx(7)、グループ=r-x(5)、その他=r-x(5) に設定する chmod 755 backup.sh # 権限を確認する ls -l backup.sh

実行結果:

-rwxr-xr-x 1 tomohiro tomohiro 45 Apr 13 10:15 backup.sh

755644 はLinuxで最もよく使う2つの数値です。覚えておきましょう。

chmod の全オプション解説はこの記事の範囲を超えるため、詳しくは「chmodコマンドで権限を変更する方法」をご覧ください。

応用:よく使うパーミッション設定

運用の現場でよく目にするパーミッションの設定パターンを紹介します。

数値 記号表記 用途の例
644 rw-r--r-- 一般的なファイル(設定ファイル、HTMLなど)
755 rwxr-xr-x 実行ファイル、シェルスクリプト、ディレクトリ
600 rw------- SSH秘密鍵など、他人に見せてはいけないファイル
700 rwx------ 自分だけが使うスクリプトやディレクトリ
444 r--r--r-- 全員が読めるが、書き込みは誰もできない(読み取り専用)
【重要】777(rwxrwxrwx)は「全員が何でもできる」状態です。
本番サーバーで 777 を設定するのはセキュリティ上ご法度です。
「動かないから777にする」というのは、鍵を全部外してドアを開け放つのと同じです。原因を調べて、必要最小限の権限を設定してください。

「Permission denied」が出た時の考え方

Linuxでファイル操作をしていると、必ず出会うエラーがこれです。

# /etc/hostnameを編集しようとする echo "myserver" > /etc/hostname

実行結果:

-bash: /etc/hostname: Permission denied

このエラーが出たら、焦らずに次の3ステップで原因を特定しましょう。

ステップ1: ls -l で権限を確認する

# ファイルの権限と所有者を確認する ls -l /etc/hostname

実行結果:

-rw-r--r-- 1 root root 10 Apr 13 10:00 /etc/hostname

所有者が root(管理者)で、その他ユーザーには r--(読みのみ)しか許可されていません。
一般ユーザーが書き込もうとしたために Permission denied になったわけです。

ステップ2: 自分が誰か確認する

# 自分のユーザー名とグループを確認する id

実行結果:

uid=1000(tomohiro) gid=1000(tomohiro) groups=1000(tomohiro),4(adm),27(sudo)

自分が tomohiro であり、ファイルの所有者 root ではないことがわかります。

ステップ3: 対処を判断する

・自分のファイルなら → chmod で権限を変更する
・システムファイルなら → sudo をつけて管理者権限で実行する
・他人のファイルなら → ファイルの所有者か管理者に依頼する

「Permission denied が出たら、まず ls -l と id で現状を確認する」。
この習慣をつけるだけで、権限トラブルの大半は自力で解決できるようになります。

関連記事 ~ 次のステップへ進む

パーミッションの基本が身についたら、次はより実践的なLinuxスキルに挑戦しましょう。

Linux入門シリーズ
Linuxとは何か?WindowsやMacとの違いを初心者向けに解説
Linuxを学ぶメリットとは|初心者が今から始めるべき5つの理由
WSL2でLinuxを始める手順|インストールから基本コマンドまで
Linuxのディレクトリ構造を初心者向けに解説
Linuxのファイル操作入門|コピー・移動・削除の基本コマンドを初心者向けに解説

実務で使うLinuxスキル 7テーマ
tmuxコマンドでターミナルを分割・管理する方法(シェルスクリプト)
chmodコマンドで権限を変更する方法(セキュリティ)
Apacheのタイムアウト設定を変更・確認する方法(サーバー構築)
straceコマンドでプロセスのシステムコールを追跡する方法(トラブルシューティング)
ncコマンドでネットワーク接続をテストする方法(ネットワーク)
rsyncコマンドでファイルを同期・転送する方法(ファイルシステム・ストレージ)
Linuxでポート番号の状態を確認するコマンド(現場コラム)

本記事のまとめ

この記事では、Linuxのパーミッション(権限)の基本を解説しました。

知りたいこと やること
ファイルの権限を確認する ls -l ファイル名
rwxの意味を知る r=読み、w=書き、x=実行、-=なし
3組の対象を知る 所有者・グループ・その他の順
記号モードで権限を変更する chmod u+x ファイル名
数値モードで権限を変更する chmod 755 ファイル名
Permission denied の原因を調べる ls -lid で確認
パーミッションは、Linuxを使ううえで避けて通れない基本中の基本です。
最初は暗号のように見える -rwxr-xr-x も、この記事で解説した3つのルール(ファイルタイプ・rwx・3段階の対象)がわかれば、もう怖くありません。

まずは ls -l でファイルの権限を眺めてみてください。
「読めるけど書き込めない」「実行権限がないから動かない」。そういった状況を自分で読み取れるようになったら、あなたはもうLinuxの権限管理の第一歩を踏み出しています。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。