私、インフラエンジニアとして、一番Linux(次いでAIX)を触っているのですが、ちょこちょこ「あれ?このパーミッションだとどうなるんだ?」と忘れてしまい、実機検証したりしています。検証するのも大した手間ではないのですが、忘れたときに見返せるように、総まとめとして本記事をアップします。
検証OS: Amazon Linux 2
パーミッションとは
パーミッション(permission)とは直訳すると「許可」のことで、ファイル・ディレクトリのアクセス権のことです。例えば、書き込み権限を外してファイルを保護したり、等をパーミッション設定で実現します。パーミッションを理解する前に前提として、「ユーザー」「グループ」という概念を理解しておく必要があります。
ユーザー・グループの簡単な説明
言葉から直観的にイメージできると思いますが、ユーザーは「個」でグループは「ユーザーの集合」です。全100ユーザーがいるシステムで、1つ1つのファイルにユーザー単位でアクセス権を設定するのはとても大変ですよね。このグループなら参照可、等が設定出来るように「グループ」というものがあります。
ユーザーは複数のグループに所属できます。会社組織のイメージでグルーピングすると、「営業部」「開発部」「営業部マネージャー」「開発部マネージャー」等とグルーピングし、営業部のマネージャー職の方は「営業部」と「営業部マネージャー」グループに所属させます。
設定内容と出来ること
基本
パーミッションは「オーナー(所有ユーザー)」「グループ」「その他」という3者に対して設定を付与します。例えば、自分しか触れないようにしたい、このグループはアクセスしていい、だれでもアクセスしていい、といった具合に設定することになります。よく使うであろうlsコマンドの結果はこのように表示されます。
$ ls -la total 12 -rw-r--r-- 1 test1 test1 18 Jul 15 2020 .bash_logout -rw-r--r-- 1 test1 test1 193 Jul 15 2020 .bash_profile -rw-r--r-- 1 test1 test1 231 Jul 15 2020 .bashrc
パーミッション設定は表示される最初の部分で、以下のように表現されます。
①はファイルの種類に応じて以下の値が設定されます。
-(ハイフン) :ファイル
l(小文字エル):リンク
d:ディレクトリ
②は「オーナー(所有ユーザー)」に対するアクセス権
③は「グループ」に対するアクセス権
④は「その他」に対するアクセス権になります。
r:読み取りが出来る
w:書き込みが出来る
x:実行が出来る
とおぼえていらっしゃる方もいるかと思いますが、もう少し踏み込んで説明します。
ディレクトリのパーミッション
ディレクトリのパーミッションはwに注意。
r | ディレクトリを参照できる。lsコマンド等でこのディレクトリを指定してアクセスエラーとならない。 |
w | そのディレクトリ内を変更できる。ディレクトリ内にmkdirでディレクトリを作成したり、ファイルを作成したりすることが出来る。ディレクトリ内のファイルに書き込み権限がない場合においても、ディレクトリ内のファイル削除等が出来る。(つまりそのディレクトリの中は自由に変更できる権限) |
x | そのディレクトリに移動(cdコマンド)出来る。 |
ファイルのパーミッション
ファイルのパーミッションがいわゆる「読み込み」「書き込み」「実行」になります。
r | ファイルを参照できる。ファイルがおいてあるディレクトリに参照権限がない場合は、ファイルに参照権限が付いていても参照することは出来ない。 |
w | ファイルを更新できる。 |
x | ファイルを実行できる。読み取り権がなくても実行可能。 |
コメント