本記事では、パーミッションの意味や設定方法について解説します。
パソコンやサーバーにあるファイルやディレクトリを扱う上で、意識しないといけない点に「パーミッション(Permission)」があります。
これはUnix/Linuxにおけるアクセス権のことです。
パーミッションを適切に設定しないと、プログラムが正しく実行されなかったり、最悪、情報漏洩などのセキュリティインシデントを引き起こしたりすることもあります。
今回ご紹介する手順をもとに、ファイルのアクセス権を確認し、パーミッションを正しく設定してください。
2022.12.22
情報セキュリティの3要素・7要素とは。定義や対策を徹底解説
デジタル社会においてあらゆる情報がデジタル化されていく中で、情報の破損、消失、漏洩、改ざんなどを防ぐ「情報セキュリティ」の重要性が高まってい...
Unix/LinuxをVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す
目次
パーミッションとは
パーミッションとは何か
パーミッションとは、Unix/Linuxにおいて、パソコンやサーバー内に存在するファイルやディレクトリといったアクセス権のことです。
パーミッションは、ファイルやディレクトリに対して以下の3種類を対象としたアクセス権を表します。
- ファイルの所有者
- ファイルの所有者が所属しているグループ
- 第三者(その他全員)
また、これらの対象に対して、以下の権限を表します。
- Read(読み取り)
- Write(書き込み)
- eXecute(実行)
つまり、パーミッションをみることで「ファイルの所有者に実行権限がある」「第三者には読み取り権限がある」といったことがわかるのです。
パーミッションが正しく設定されていないと、アプリケーションの設定ファイルなど本来第三者が自由に書き込みしてはいけないものまで書き込めたり、実行できたりします。
そのような誤動作を防ぐために、またセキュリティインシデントの防止のために、パーミッションは適切に設定しておかなければいけません。
パーミッションの文字表記の意味
以下は、Ubuntu環境上のファイルのリストを示した画像です。
赤枠の部分がパーミッションです。
パーミッションの見方は、以下のとおりです。
先頭の「d」は対象の属性を表すもので、パーミッションとは異なります。
「d」はディレクトリ、「-」はファイルを示します。
- アクセス権の例
例えば、パーミッション「rwxr-xr-x」の場合
- 所有者に「読み取り」「書き込み」「実行権限」がある
- 所有者と同じグループには「読み取り」「実行権限」がある
- 第三者には「読み取り」「実行権限」がある
ということを表します。
パーミッション「rw——-(※-が7つ並んでいる状態)」の場合、所有者にしか読み取り、書き込み権限しかないことを意味します。
このように、ファイルやディレクトリによって適切なアクセス権を割り当てることが重要です。
パーミッションの設定方法
パーミッションを数字で指定
ここからは、実際にファイルのパーミッションを変更する方法について紹介します。
パーミッションを変更するには「chmod」コマンドを使用します。
コマンドの書式は以下のとおりです。
chmod [オプション] <パーミッション> <ファイル名またはディレクトリ名>
ここで、パーミッションを指定する方法が2種類あります。
1つは、数字で指定する方法です。
この方法が一般的なので、覚えておきましょう。
アクセス権を数値で表し、「所有者」「所有者が所属するグループ」「第三者」の順で3桁の数値で指定します。
アクセス権を表す数字は以下のとおりです。
数字 | アクセス権 | 意味 |
---|---|---|
0 | --- | アクセス権なし |
1 | --x | 実行権限のみ |
2 | -w- | 書き込みのみ |
3 | -wx | 書き込みと実行 |
4 | r-- | 読み取りのみ |
5 | r-x | 読み取りと実行 |
6 | rw- | 読み取りと書き込み |
7 | rwx | 読み取りと書き込みと実行 |
例えば、ファイル「test.txt」にパーミッションを設定するケースを考えてみましょう。
所有者に「読み取りと書き込み」、所有者と同じグループおよび第三者に「読み取りのみ」の権限を付与したい場合は、以下のコマンドを実行します。
chmod 644 test.txt
実行すると、実際にパーミッションが変更されていることを確認できます。
パーミッションを文字列で指定
もう1つの方法は、対象とパーミッションを文字列で指定する方法です。
指定する文字列は、以下のとおりです。
対象 | 設定値 | 意味 |
---|---|---|
ユーザー | u | user(所有者) |
g | group(所有者が所属するグループ) | |
o | other(第三者、その他全員) | |
a | all(全ユーザー) | |
演算子 | + | アクセス権付与 |
- | アクセス権削除 | |
= | 指定したアクセス権に変更 | |
アクセス権 | r | 読み取り |
w | 書き込み | |
x | 実行 |
例えば、所有者に実行権限を付与したい場合は「u+x」、第三者から書き込み権限を削除したい場合は「o-w」と指定します。
では、先ほどと同様、ファイル「test.txt」にパーミッションを設定するケースを考えてみましょう。
所有者に「読み取りと書き込み」、所有者と同じグループおよび第三者に「読み取りのみ」の権限を付与したい場合は、以下のコマンドを実行します。
chmod u+rw test.txt
chmod go+r test.txt
実行すると、実際にパーミッションが変更されていることを確認できます。
パーミッションの指定は、数字・文字列どちらでもかまいません。
わかりやすい方を使用しましょう。
一般的には、数字で指定するほうが広く認知されています。
chmodのオプション
最後に、知っておくと便利なchmodのオプションを紹介します。
- 「-v」オプション:実行結果の詳細表示
パーミッションの変更は大変重要なので、変更した後必ず確認しておくことが大切です。
通常chmod実行後、エラーがなければ何も出力されませんが、「-v」を指定すると、コマンド実行時の詳細が表示されます
chmod -v 664 test.txt
- 「-R」オプション:ディレクトリ配下のファイルを一括変更
ディレクトリ内にあるすべてのファイルのパーミッションを一括で変更したい場合は、「-R」を指定します。
chmod -R 777 testdir
まとめ
今回はUbuntuを例に、パーミッションについて説明しました。
パーミッションはファイルやディレクトリのアクセス権のことで、適切に指定することは非常に重要です。
パーミッションが正しく設定されていないと、アプリケーションやシェルスクリプトが正常に動作しなかったり、第三者にファイルの情報を盗まれたりするなど、セキュリティインシデントを引き起こす要因にもなります。
今回ご紹介した手順をもとに、ファイルのアクセス権を確認し、正しく設定するよう心がけてください。
UnixやLinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。