「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 コマンドで権限を変更する基本を押さえる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜパーミッション(権限)があるのか?
Linuxは、もともと複数のユーザーが同時にログインして使う「マルチユーザーOS」として設計されています。会社のサーバーを思い浮かべてください。開発チームのAさん、経理部のBさん、外部の協力会社Cさんが同じサーバーにログインしている状況です。
もし全員がすべてのファイルを自由に読み書きできたら、どうなるでしょうか。
・Aさんが書いたプログラムをCさんが誤って上書きしてしまう
・Bさんの給与計算データをAさんが覗けてしまう
・誰かが間違えてシステムの設定ファイルを消してしまい、サーバーが止まる
こうした事故を防ぐために、Linuxではファイルやディレクトリの一つひとつに「誰が」「何をしてよいか」を設定できるようになっています。
これがパーミッション(permission = 許可)です。
身近な例でいえば、オフィスの鍵と同じです。
自分のデスクの引き出しは自由に開けられるけれど、社長室の鍵は持っていない。サーバールームは特定の管理者しか入れない。
Linuxのパーミッションは、このような「鍵の管理」をファイル単位で行う仕組みです。
Windowsの「アクセス許可」とLinuxの「パーミッション」の違い
実はWindowsにも「アクセス許可」という仕組みがあります。ファイルを右クリック →「プロパティ」→「セキュリティ」タブを開くと、ユーザーごとの権限を確認できます。
ただ、Windowsでは普段この設定を意識することはほとんどありません。
一方、Linuxではパーミッションが日常的に目に入ります。
ファイルを一覧表示するだけで権限が表示され、権限がないファイルは操作した瞬間にエラーになります。
| 比較項目 | Windows | Linux |
|---|---|---|
| 権限の名前 | アクセス許可(ACL) | パーミッション |
| 普段の意識 | ほとんど意識しない | 常に意識する必要がある |
| 確認方法 | 右クリック → プロパティ → セキュリティ | ls -l コマンド一発 |
| 権限の単位 | ユーザー/グループを細かく追加可能 | 所有者・グループ・その他の3段階 |
| 管理者権限 | 「管理者として実行」 | sudo コマンド |
覚えることが少ない分、一度理解すれば迷うことはありません。
パーミッションの読み方 ~ 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 | 権限なし |
# 所有者=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
755 と 644 は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
ステップ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 -l と id で確認 |
最初は暗号のように見える
-rwxr-xr-x も、この記事で解説した3つのルール(ファイルタイプ・rwx・3段階の対象)がわかれば、もう怖くありません。まずは
ls -l でファイルの権限を眺めてみてください。「読めるけど書き込めない」「実行権限がないから動かない」。そういった状況を自分で読み取れるようになったら、あなたはもうLinuxの権限管理の第一歩を踏み出しています。
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
