18 記事
Linuxコマンド入門
LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...
前回(#13)は、ターミナル上でファイルを直接編集できるエディタ、nanoとvimを紹介しました。
【初心者向け】nano / vim「ターミナルでファイル編集」- 2大エディタの基本操作 -【Linuxコマンド入門 #13】
linuxターミナルで閊える2大エディタ nanoとvimについて、最低限の操作を紹介します。 基本はこれだけ覚えておけばいいと初心者向けの入門編。
これでファイル操作の「見る」「作る」「消す」「コピー」「移動」「編集」が揃いました。しかし、これらの操作をしていると、いつか必ず「Permission denied(許可がありません)」というエラーに遭遇します。
今回は、このエラーの謎を解き明かすため、Linuxの根幹とも言える「権限(パーミッション)」の仕組みについて学びます。

「Permission denied」エラーは、Linuxが「あなたに、その操作をする許可を与えていない」ために起こります。
この仕組みを理解するには、まず「”あなた” とは誰か?」Who am I ? をLinuxシステムに確認する必要があります。
1. まず「自分が誰か」を知る (whoami)
whoami (Who am I? / 私は誰?) は、現在ログインしているユーザー名を教えてくれる、非常にシンプルなコマンドです。
whoami
# tukumoこの tukumo というのが、今操作しているあなたの「名前」です。Linuxは、この名前(ユーザー)に基づいて、ファイル操作の「許可・不許可」を判断します。
2. 「権限」を確認する (ls -l)
次に、lsコマンドに -l (Long format) オプションを付けて、ファイルやディレクトリの詳細情報を表示してみましょう。
ls -l
# -rw-r--r-- 1 tukumo tukumo 1024 11/14 17:30 config.ini
# drwxr-xr-x 2 tukumo tukumo 4096 11/14 18:00 my_projectlsだけではファイル名しか表示されませんでしたが、-lを付けると、謎のアルファベット(drwxr-xr-xなど)や、先ほどwhoamiで見た tukumo という名前が表示されました。
この1行に、権限のすべてが詰まっています。
【初心者向け】pwd・lsコマンド 「今どこ?」と「何がある?」- コピペで試せるオプション理解 -【Linuxコマンド入門 #2】
lsコマンドの使い方を、よく使うオプション順に紹介します。基本的な使い方をマスターしましょう。
3. ls -l の見方(登場人物と権限)
この複雑な行を、重要な3つのグループに分けて見ていきましょう。【ls】の復習
[権限] [所有者] [グループ] [ファイル名]
[drwxr-xr-x] [tukumo] [developers] [my_project.py]
3-1. 3つの「登場人物」(誰が)
Linuxは、ファイルにアクセスしようとする人を3種類に分類します。
- ユーザー (User / 所有者)
ls -lの2列目(例: tukumo)。- そのファイルの「持ち主」です。
whoamiの結果とこの名前が一致した場合、あなたは「所有者」として扱われます。
- グループ (Group)
ls -lの3列目(例:developers)。- ファイルが所属する「チーム」です。
- あなたが「所有者」ではなくても、この「グループ」に所属していれば、あなたは「グループ」として扱われます。
- その他 (Other)
- 上記2つのどちらでもない人。「全くの他人」です。
3-2. 3つの「権限」(何をできる)
次に、先頭の drwxr-xr-x の部分を見ていきます。 最初の1文字(d ディレクトリ)を除き、rwx r-x r-x の3文字ずつのブロックに分かれています。
r(Read): 読み取り- ファイル:
catやlessで中身を読むことができます。 - ディレクトリ:
lsで中身の一覧を見ることができます。
- ファイル:
w(Write): 書き込み- ファイル:
nanoやvimで中身を編集・上書きできます。 - ディレクトリ:
touchやmkdirで、そのディレクトリ内にファイルやフォルダを作成・削除・名前変更できます。(超重要)
- ファイル:
x(Execute): 実行- ファイル: そのファイルをプログラムとして実行できます。(例:
./script.sh) - ディレクトリ:
cdでそのディレクトリに入ることができます。
- ファイル: そのファイルをプログラムとして実行できます。(例:
4. 10文字の「権限コード」を解読する
ls -lの先頭10文字は、以下のように構成されています。

例1: drwxr-xr-x (ディレクトリ)
d | rwx | r-x | r-x
- 種別 (
d): directory (ディレクトリ) です。 - ユーザー (
rwx): 所有者(tukumo)は「読み・書き・実行」すべて可能です。 - グループ (
r-x):developersグループの人は「読み・実行」は可能ですが、「書き込み (w)」は許可されていません(-になっているため)。 - その他 (
r-x): 全くの他人も「読み・実行」は可能ですが、「書き込み (w)」はできません。
例2: -rw-r--r-- (ファイル)
- | rw- | r-- | r--
- 種別 (
-): 通常のファイル (file) です。 - ユーザー (
rw-): 所有者(lumenHero)は「読み・書き」は可能ですが、「実行 (x)」はできません。 - グループ (
r--):usersグループの人は「読み」だけ可能です。 - その他 (
r--): 全くの他人も「読み」だけ可能です。
5. “Permission denied” になる具体例
cdできない!cd my_projectでPermission deniedと出た場合、my_projectディレクトリの権限を見て、自分(User, Group, Otherのどれか)にx(実行) 権限がないことが原因です。
- スクリプトが実行できない!
bash ./script.shではなく./script.shで実行しようとしてPermission deniedと出た場合、そのファイルにx(実行) 権限がないことが原因です。(次回のchmodで解決します)
第14回のまとめ
whoami : 自分が今、どのユーザーとして認識されているかを確認する。ls -l: 詳細情報 (Long) がわかる。- 権限の見方:
- 登場人物: ユーザー (User), グループ (Group), その他 (Other)
- 権限の種類:
r(読み),w(書き),x(実行) whoamiの結果とls -lの「所有者」を比べることで、自分がどの権限を持つかが分かる。
次回予告
お疲れ様でした! 今回は「権限」の見方が分かり、”Permission denied” の「原因」が特定できるようになりました。 次回(#15)は、この権限を「変更」するためのコマンド、chmod を紹介します。これで、x権限を自分で追加するなど、エラーに実際に対処できるようになります。
【初心者向け】sudoとchmodコマンド「権限変更」- コピペで試せるオプション理解 -【Linuxコマンド入門 #15】
ファイルの権限を変更するには?chmodのオプション、引数についてよく使うものから湯煎的に紹介します。
18 記事
Linuxコマンド入門
LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...