はじめに
ファイルやディレクトリのアクセス権限は、Linux システムの重要なセキュリティ要素です。Ubuntu 20.04 LTS におけるこれらの権限の基本的な概念と設定方法について解説します。
アクセス権限の基本
Ubuntu などの Linux システムにおけるファイルのアクセス権限は、「ユーザー」、「グループ」、そして「その他」の 3 つのカテゴリによって管理されます。それぞれに対する読み取り、書き込み、および実行の権限が設定できます。
- ユーザー:ファイルまたはディレクトリの所有者を指します。所有者はデフォルトでファイルやディレクトリの読み取り、書き込み、実行の権限を持っています。これらの権限は必要に応じて変更可能です。
- グループ:同じグループに属するユーザーのセットを指します。ファイルまたはディレクトリは特定のグループに所属しており、そのグループのメンバーは設定により読み取り、書き込み、実行の権限を持つことができます。
- その他:所有者でもグループのメンバーでもない全てのユーザーを指します。これらのユーザーに対する読み取り、書き込み、実行の権限は個別に設定することができます。
これらのカテゴリに対する各権限は以下の通りです:
- 読み取り権限:ファイルの内容を読む権限とディレクトリの内容をリストする権限を指します。この権限は
r
で示されます。 - 書き込み権限:ファイルの内容を変更する権限とディレクトリにファイルを追加または削除する権限を指します。この権限は
w
で示されます。 - 実行権限:ファイルを実行する権限とディレクトリ内のファイルやサブディレクトリにアクセスする権限を指します。この権限は
x
で示されます。
アクセス権限の表示方法
ls -l コマンドの使用
Ubuntu では、ターミナルからls -lコマンドを使用することで、特定のディレクトリ内のファイル一覧と各ファイルのアクセス権限を表示することができます。具体的には、以下のようなコマンドとその出力結果を示します。
コマンド:
ls -l /path/to/directory
出力結果例:
-rwxr-xr-x 1 user group 123 Jan 1 00:00 file1
drwxr-xr-x 2 user group 4096 Jan 1 00:00 directory1
アクセス権限の解釈
ls -l コマンドの出力結果の中で、最初の 10 文字はファイルの種類と、そのファイルの所有者、グループ、その他のユーザーに対するアクセス権限を示しています。以下に具体的な解釈を示します。
- 最初の文字はファイルタイプを示します(
d
はディレクトリ、-
は通常のファイル) - 次の3文字(2-4文字目)はファイルの所有者の権限を示します(読み取り(r)、書き込み(w)、実行(x))
- 次の3文字(5-7文字目)はグループの権限を示します
- 最後の3文字(8-10文字目)はその他のユーザーの権限を示します
例えば、-rwxr-xr-x
というアクセス権限は、「所有者には読み書き実行の権限があり、グループ内の他のユーザーとその他のユーザーは読み取りと実行の権限がある」という意味になります。
アクセス権限の設定変更
chmod
コマンドを使用したアクセス権限の変更方法について詳しく解説します。
chmod コマンドの基本
アクセス権限の変更には主に chmod コマンドが用いられます。このコマンドは「change mode」の略で、ファイルやディレクトリのアクセス権限を変更するためのコマンドです。基本的な形式は以下の通りです: chmod [オプション] [モード] [ファイル名]
オクタル表記による設定
chmod コマンドでアクセス権限を設定する方法の1つはオクタル(8進数)表記を使う方法です。この方法では、ユーザー(u)、グループ(g)、その他(o)の各権限を3つの数字で表現します。具体的な数字と権限の対応は以下の通りです:
- 4:読み取り(Read)
- 2:書き込み (Write)
- 1:実行 (Execute)
これらの数字を組み合わせて、ファイルやディレクトリのアクセス権限を設定します。たとえば、chmod 755 [ファイル名]
というコマンドは、所有者に対して読み取り、書き込み、実行権限(4+2+1=7)を、グループとその他のユーザーに対して読み取りと実行権限(4+1=5)を設定します。
シンボリック表記による設定
もう1つの方法はシンボリック表記を用いる方法です。この方法では、以下のような文字列を使用してアクセス権限を設定します:
- u:ユーザー(User)
- g:グループ(Group)
- o:その他(Others)
- a:全て(All)
- r:読み取り権限(Read)
- w:書き込み権限(Write)
- x:実行権限(Execute)
そしてこれらの文字と +
(権限の追加), -
(権限の削除), =
(権限の設定)を組み合わせてアクセス権限を変更します。例えば、chmod u+x [ファイル名]
というコマンドは、所有者に対して実行権限を追加します。
実際の使用例
特定のファイルに対する所有者の全権限設定
たとえば、所有者のみが全ての権限を持つ、という設定は以下のように行います。まず、ターミナルで次のコマンドを実行し、ファイルの現在のパーミッションを確認します。
ls -l filename
次に、所有者だけに全ての権限を付与し、他のユーザーには読み取りと実行の権限のみを付与するには、以下のコマンドを使用します。
chmod 755 filename
ディレクトリ全体への一括変更
一定のディレクトリに含まれる全てのファイルとサブディレクトリに対して一括でアクセス権限を変更するには、chmod コマンドに -R オプションを付与します。たとえば、ディレクトリ名 「directory」内の全てのファイルとディレクトリに対して、所有者に全ての権限を付与し、それ以外のユーザーには読み取りと実行の権限のみを付与するには、次のようにします。
chmod -R 755 directory
所有者とグループの変更
ファイルやディレクトリの所有者の変更
ファイルやディレクトリの所有者を変更するには chown コマンドを使います。chown は change owner の略で、所有者を変更するためのコマンドです。
基本的な使用法
chown コマンドの基本的な使用法は以下のようになります。
chown 新規所有者 ファイル名
たとえば、ファイル「filename」の所有者を「user1」に変更するには以下のようにします。
chown user1 filename
ディレクトリ全体への一括変更
chown コマンドも chmod と同様に -R オプションを使用してディレクトリ全体を一括で変更することが可能です。
chown -R user1 directory
ファイルやディレクトリのグループの変更
ファイルやディレクトリのグループを変更するには chgrp コマンドを使います。chgrp は change group の略で、グループを変更するためのコマンドです。
基本的な使用法
chgrp コマンドの基本的な使用法は以下のようになります。
chgrp 新規グループ ファイル名
たとえば、ファイル「filename」のグループを「group1」に変更するには以下のようにします。
chgrp group1 filename
ディレクトリ全体への一括変更
chgrp コマンドも -R オプションを使用してディレクトリ全体を一括で変更することが可能です。
chgrp -R group1 directory
このように、ファイルとディレクトリのアクセス権限管理は、Ubuntu 20.04 LTS におけるセキュリティ管理において、極めて重要な役割を果たします。適切なアクセス権限の設定を行うことで、システムの安全性を保つとともに、ユーザー個々の作業効率も向上します。
しかし、強力なツールである一方で、これらのコマンドは不適切に使用されるとシステム全体を危険にさらす可能性もあります。したがって、これらのコマンドを使用する際には十分な注意が必要で、必要な場合にのみ適切な権限を付与することを心掛けてください。
以上