【リニューアル記念】未経験からブロガーへのSTEPを続々更新!

Linuxのパーミッション(権限)とは?確認や変更方法も一緒に紹介!

Linuxのパーミッションとは

Linuxには、「パーミッション(権限)」というものがあります。

これは、ディレクトリやファイルなどを操作する際の権限のこと。

正確にいえば、Windowsにも権限設定は存在するのですが、意識する場面が少ないので触ったことがない方も多いと思います。

Windowsだと「管理者権限で実行」で対処できることが多いですしね。

ですが、Linuxではこの「パーミッション」を意識する場面がたくさん出てきますので、必ずおさえておきましょう!

この記事は、Linuxのパーミッションについて体系的に学べるようなっています。

パーミッションとは

パーミッションとは、ディレクトリやファイルなど操作するための権限のことです。

これはセキュリティのためにある機能で、「特定のファイルやディレクトリに対し、ユーザーやグループがどのような操作をおこなえるか」を設定します。

Linuxでのパーミッションの種類は、以下の3つになっています。

  • 読み取り権限(read)
  • 書き込み権限(write)
  • 実行権限(execute)

そして、これらパーミッションはディレクトリやファイルの「所有者」と「所有グループ」それぞれに設定されています。

たとえば、「index.html」というファイルがあったとすると

  • 「index.html」の所有者は「kitsune」で、権限は「読み込み」「書き込み」「実行」
  • 「index.html」の所有グループは「develop」で、権限は「読み込み」「実行」
  • 「index.html」のその他のユーザーの権限は「読み込み」

のように、1つのファイルに対してこれだけのパーミッションが設定されているのです。

パーミッションの見方

パーミッションの意味はなんとなく理解できたと思います。

では、さきほどの「index.html」のパーミッションを、実際に使われるLinuxの表記にしてみますね。

「-rwxr-xr-- kitsune develop」

こんな英語とハイフンの羅列を見せられても、何がなんだかわからないですよね。

じゃあ、わかりやすく分解してみましょう!

パーミッションの見方

  1. 「-」…ファイルタイプ
  2. 「rwx」…所有者の権限
  3. 「r-x」…所有グループの権限
  4. 「r--」…その他のユーザーの権限
  5. 「kitsune」…所有者名
  6. 「develop」…所有グループ名

こうすることで、めちゃくちゃ簡単に理解できるようになります!

ファイルタイプ

まず、最初の「-」ですが、これは「ファイルタイプ」をあらわしています。

  • 「d」…ディレクトリ
  • 「l」…リンク
  • 「-」…ファイル

今回は、ファイルなので「-」になりますね。

所有者の権限

2つ目の「rwx」は、「所有者の権限」をあらわしています。

  • 「r」…「read(読み取り権限)」
  • 「w」…「write(書き込み権限)」
  • 「x」…「execute(実行権限)」

所有者は、このファイルに対して「すべての権限を持っている」ということになります。

所有グループの権限

3つ目の「r-x」は、「所有グループの権限」をあらわしています。

  • 「r」…「read(読み取り権限)」
  • 「-」…「書き込み権限なし」
  • 「x」…「execute(実行権限)」

所有グループは、「書き込み以外の権限を持っている」ということになります。

その他のユーザーの権限

4つ目の「r--」は、「その他のユーザーの権限」をあらわしています。

ここまで理解できていれば、察しがつくと思います。

その他のユーザーは、「読み取り権限だけを持っている」ということになりますね。

所有者名と所有グループ名

最後の2つは、このファイルの「所有者」と「所有グループ」をあらわしています。

キツネ

これでパーミッションの意味や見方はバッチリだね!

パーミッションの確認

Linuxのすべてのディレクトリやファイルには、パーミッションが必ず設定されています。

これらのパーミッションを確認したい場合は、「ls -l」コマンドを実行することで簡単に確認できます。

実は、さきほどの「-rwxr-xr-- kitsune develop」は、「ls -l」コマンドの出力結果だったのです。

パーミッションの変更

ディレクトリやファイルのパーミッションを変更したいときは、「chmod(change mode)」コマンドを利用します。

コマンド
chmod ファイルモード ファイル名

ファイルモードは、数字で指定することが多いので覚えておきましょう!

  • 0…「---」
  • 1…「--x」
  • 2…「-w-」
  • 3…「-wx」
  • 4…「r--」
  • 5…「r-x」
  • 6…「rw-」
  • 7…「rwx」

たとえば、所有者を「rw-」、グループを「r--」、その他ユーザーを「r--」に変更したい場合は、以下のコマンドを実行します。

コマンド
chmod 644 index.html

もし、すべてのユーザーに「/tmp/test」ディレクトリのフル権限を与えたいなら、以下のコマンドを実行します。

コマンド
chmod 777 /tmp/test

ただ、上の場合だと「/tmp/test」ディレクトリのみが対象になり、その下にあるディレクトリやファイルは対象外となります。

指定したディレクトリ配下のファイルやディレクトリをすべて対象にしたい場合は、「-R」オプションをつけて実行します。

コマンド
chmod -R 777 /tmp/test

「-R」は、「recursive(再帰的)」の略なので、繰り返すってことですね。

キツネ

フル権限は「ラッキー7」だね!

パーミッションエラーが出たら?

パーミッションを変更しようと「chmod」コマンドを実行すると、「permission denied」のようなエラーが発生することがあります。

これは、ログインしているユーザーに対象のディレクトリやファイルの実行権限がないからです。

そんなときは、コマンドの前に「sudo」をつけてみてください。

コマンド
sudo chmod 777 index.html

「sudo」をつけることで、コマンドを管理者権限で実行できます。

ただし、管理者権限を付与されていないユーザーは「sudo」を使えないので注意!

パーミッション「777」は危険!?

フル権限に変更する方法を紹介しておいてなんですが、なんでもかんでも「777」のフル権限に設定してしまうと大変危険だったりします。

そもそも、Linuxは複数人で利用することを前提としているので、「777」にしてしまうと誰でもファイルを書き変えられることになるのです。

つまり、書き込み権限をむやみに渡さないことが大切なんです。

必要がなければ「755」や「644」に設定し、特定のユーザー以外に書き込み権限を与えないようにしましょう。

ちなみに、ローカル環境の場合は自分しか使わないので、「777」に設定してもそこまで大きな問題にはなりません。

ですが、勉強のためにもパーミッションは必要な権限だけを設定するよう癖づけておいたほうが、実務でも役立ちますよ。

キツネ

「777」にするときは、本当にどうしようもないときだけだね!

まとめ

Linuxのパーミッションについて、絶対にはずせない部分をまとめて紹介しました。

とりあえず、ここでは「Linuxのすべてのディレクトリとファイルには、パーミッションが設定されている」と覚えておいてもらえれば大丈夫です。

パーミッションの設定がわからなくなったら、この記事をいつでも見直せるようにだけしておいてください。

次は、Linuxを操作するために「【これで完璧】よく使うLinuxの基本コマンド一覧とオプションを紹介」を読んで、コマンドについて学びましょう!

テキストのコピーはできません。