【月間10万PV達成】ブログの作り方を無料公開中!

Linuxのパーミッション(権限)とは?確認や変更などの設定方法を紹介!

Linuxのパーミッションとは

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

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

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

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

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

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

パーミッションはLinuxの基本!しっかり覚えようね!
Linuxのディレクトリ構成Linuxのディレクトリ構成(構造)とは?Windowsフォルダとの違いを覚える!

パーミッション(権限)とは

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

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

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

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

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

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

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

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

ちょっとややこしいけど、次へ進んでみよう!

パーミッションの見方(Linux)

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

では、さきほどの「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」コマンドの出力結果だったのです。

Linuxコマンドについては、こちらの記事に詳しくまとめています。

Linuxコマンドとオプションこれで完璧!Linux基本コマンドとオプションの使い方【一覧あり】

パーミッションの変更(ディレクトリ、ファイル)

ディレクトリやファイルのパーミッションを変更したいときは、「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の基本コマンド」について学びましょう!

またね、キツネ(@kitaaaa_kitsune)でした!

【Linux入門】基礎知識の勉強まとめ!構築方法やコマンドを学習する【Linux入門】基礎知識や構築、使い方の勉強【初心者向け学習】
テキストのコピーはできません。