LINEで現役エンジニアに直接質問してみよう!登録無料

Linuxのパーミッション(権限)とは?所有者と権限(数字)の関係や変更方法を解説

パーミッションとは、Linuxシステムのファイルやディレクトリの編集をしたり作成する時の権限のことです。

Linuxには様々なファイルが存在します。システムに関する設定ファイルや、プログラムファイル、デバイスを操作するデバイスファイル等です。もし、これらを勝手に変更や実行が出来てしまうと、知らない間コンピューターウイルスに感染したり、バックドアを仕掛けられたりというような様々な問題が発生していまいます。

パーミッションはLinuxの基本的な機能で、意識しなければ行けない場面がたくさんあるので、この記事で理解しておさえておきましょう。

パーミッションとは?

冒頭で解説した通り、「Linuxシステムのファイルやディレクトリの編集をしたり作成する時の権限」の事です。

パーミッションとは、セキュリティのために存在する機能で、「ファイルに対し誰がどのような事を行えるのか(権限)」について設定のことです。

Linuxパーミッションの権限には3種類あります。

  • 読み込み権限(read) ・・・ 誰がこのファイルを読み込むことができるか
  • 書き込み権限(write) ・・・ 誰がこのファイルを変更することができるか
  • 実行権限(execute) ・・・ 誰がこのプログラムを実行できるか

パーミッションの確認方法と見方

パーミッションの確認には、Linuxのコンソールで ls -l を実行することで確認出来ます。 実際に実行すると、このようになります。

$ ls -l
total 4
drwxrwxr-x 2 nethack developer 4096 Jun 11 04:59 hello
-rw-rw-r-- 1 nethack developer    0 Jun 11 04:59 hello.txt

見方は左から順番にこのように並んでいます。

  • パーミッション
  • 所有者
  • 所属グループ
  • ファイルサイズ
  • 更新日時
  • ファイル名

パーミッションの見方は、このようになります

  • d ・・・ ディレクトリ
  • r ・・・ 読み込み権限
  • w ・・・ 書き込み権限
  • x ・・・ 実行権限

これが、「所有者」「グループ」「その他」の人にそれぞれ適用されます。

パーミッションの変更方法

パーミッションの変更には chmomd というコマンドを用います。

  • r ・・・ 4
  • w ・・・ 2
  • x ・・・ 1

としてその足し算で計算した数値を入力します。

$ chmod 600 hello.txt

すると、このように変わります。

$ ls -l
total 4
drwxrwxr-x 2 ec2-user ec2-user 4096 Jun 11 04:59 hello
-rw------- 1 ec2-user ec2-user    0 Jun 11 04:59 hello.txt

パーミッションの注意点

パーミッションはセキュリティのために存在するので、余計な実行権限を与えないようにしないといけません。

  • セキュリティのために存在している
  • 余計な実行権限を与えない

パーミッションのエラー

$ chmod 000 hello.txt
$ cat hello.txt 
cat: hello.txt: Permission denied
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。