はじめに
この実験では、Linux 環境におけるファイルとディレクトリの権限を管理するための基本的なスキルを習得します。まず、専用のワークスペースをセットアップし、演習の基礎となる新しいディレクトリとサンプルファイルを作成することから始めます。この実践的なアプローチを通じて、不可欠なコマンドラインツールを使用したデータへのアクセス制御を練習します。
実験全体を通して、chown コマンドを使用してファイルの所有権を変更し、chmod コマンドを使用してさまざまなユーザーやグループに対する読み取り、書き込み、実行の権限を修正します。これらの概念をまず個別のファイルに適用し、次にこれらの権限がディレクトリへのアクセスにどのように特有の影響を与えるかを学びます。最終的には、Linux システム上でファイルを効果的に保護し、ユーザーアクセスを管理できるようになります。
ワークスペースの準備とファイルの作成
このステップでは、まずこの実験のための専用ワークスペースをセットアップします。ファイルを特定のディレクトリに整理することは、クリーンで管理しやすいファイルシステムを維持するための Linux における基本的な慣行です。ディレクトリを作成し、その中に新しいファイルを作成します。これが、以降のステップで行う権限管理演習の対象となります。
まず、現在の作業ディレクトリである ~/project の中に、RandD(Research and Design:研究開発の略)という名前の新しいディレクトリを作成しましょう。新しいディレクトリを作成するには mkdir コマンドを使用します。
ターミナルで次のコマンドを実行してください。
mkdir RandD
次に、新しく作成した RandD ディレクトリに移動します。cd(ディレクトリ移動)コマンドを使用すると、ファイルシステム内のディレクトリ間を移動できます。
cd RandD
ターミナルのプロンプトが、現在 ~/project/RandD ディレクトリ内にいることを示しているはずです。
次に、設計ドキュメントを模した空のファイルを作成しましょう。touch コマンドは、新しい空のファイルを作成する簡単な方法です。ファイルが既に存在する場合、touch は内容を変更せずに修正タイムスタンプを更新します。
design_doc.odt という名前の新しいファイルを作成します。
touch design_doc.odt
ファイルが作成されたことを確認し、そのデフォルトのプロパティを確認するために、ls -l コマンドを使用します。このコマンドは、現在のディレクトリの内容をロングフォーマットでリスト表示し、権限、所有者、グループ、サイズ、修正日などの詳細情報を提供します。
ls -l
次のような出力が表示されるはずです。デフォルトでは、新しいファイルはあなたのユーザーアカウント(labex)とプライマリグループ(labex)によって所有されていることに注目してください。権限を示す文字列 -rw-rw-r-- については、後のステップで詳しく説明します。
total 0
-rw-rw-r-- 1 labex labex 0 Jun 26 10:36 design_doc.odt
これで、ワークスペースの準備とこの実験の対象ファイルの作成が完了しました。次のステップでは、その所有権と権限を変更する方法を学びます。
chown コマンドによるファイルの所有権の変更
このステップでは、ファイルの所有権を変更する方法を学びます。Linux では、すべてのファイルとディレクトリに所有者(特定のユーザー)とグループが割り当てられています。この所有権は、誰がファイルを読み取り、書き込み、実行する権利を持つかを決定するのに役立つため、Linux セキュリティモデルの要となります。所有権を変更するために使用されるコマンドは chown です。
今回のシナリオでは、design_doc.odt ファイルを新しいユーザー student1 と新しい共同作業グループ research によって管理する必要があります。これらのユーザーとグループはまだ存在しないため、最初に作成する必要があります。
まだ ~/project/RandD ディレクトリにいることを確認してください。もし違う場所にいる場合は、cd ~/project/RandD コマンドを使用して移動してください。
まず、groupadd コマンドを使用して research グループを作成します。これはシステムレベルの操作であり、管理者権限が必要なため、sudo を使用する必要があります。
sudo groupadd research
次に、useradd コマンドを使用して student1 ユーザーを作成します。-m フラグは、新しいユーザーのホームディレクトリを作成するために使用されます。これは標準的な慣行です。これも sudo が必要です。
sudo useradd -m student1
student1 ユーザーと research グループが作成されたので、design_doc.odt ファイルの所有権を変更できます。chown の構文は chown ユーザー:グループ ファイル名 です。ファイルを別のユーザーに割り当てるため、このコマンドの実行には sudo が必要です。
sudo chown student1:research design_doc.odt
所有権が更新されたことを確認するために、再度 ls -l コマンドを使用します。
ls -l
出力には、ユーザー所有者として student1、グループ所有者として research が表示されます。
total 0
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt
前の出力と比較してください。3 列目と 4 列目が labex labex から student1 research に変わっており、コマンドが成功したことが確認できます。これで、設計ドキュメントの所有権を移譲できました。
chmod コマンドによるファイル権限の修正
このステップでは、chmod(モード変更)コマンドを使用して、ファイルの読み取り、書き込み、または実行ができるユーザーを制御する方法を学びます。ファイル権限は、Linux セキュリティモデルの基本的な側面です。ドキュメントをより安全にするために、「その他(others)」の権限を削除する練習をします。
まず、~/project/RandD ディレクトリにいることを確認してください。ls -l で design_doc.odt の現在の権限を再確認しましょう。
ls -l
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt
文字列 -rw-rw-r-- はファイルの権限を表しています。これは、ユーザー(所有者)、グループ、その他(それ以外の人全員)の 3 つのキャラクターセットに分かれています。
rw-: 所有者であるstudent1は、読み取り(read)と書き込み(write)の権限を持っています。rw-: グループであるresearchも、すでに読み取りと書き込みの権限を持っています。r--: その他は読み取り権限のみを持っています。
見ての通り、research グループはすでにこのドキュメントへの書き込みアクセス権を持っており、共同作業が可能です。しかし、ドキュメントの機密性を確保するために、「その他」のすべての権限を削除する必要があります。これは、一般的で効率的な方法である「8 進数(数値)表記」を用いた chmod で実現できます。
現在の権限をもう一度確認しましょう。
ls -l
出力により現在の権限が確認できます。
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt
ここで、ドキュメントの機密性を維持するために、「その他」のすべての権限を削除します。
8 進数による権限の仕組みは以下の通りです。
r(読み取り) = 4w(書き込み) = 2x(実行) = 1
各カテゴリ(ユーザー、グループ、その他)に対して、希望する権限の数値を合計します。
- ユーザー: 読み取り (4) + 書き込み (2) =
6 - グループ: 読み取り (4) + 書き込み (2) =
6 - その他: 権限なし =
0
結果として得られる権限コードは 660 です。これを適用しましょう。
sudo chmod 660 design_doc.odt
最後に、権限をもう一度確認します。
ls -l
出力により、「その他」に権限がなくなったこと(---)が確認でき、ドキュメントが保護されました。
-rw-rw---- 1 student1 research 0 Jun 26 10:36 design_doc.odt
グループでの共同作業を許可しつつ、部外者からのアクセスを制限するようにファイルの権限を正常に修正できました。
ディレクトリのアクセス権限の制御
この最後のステップでは、RandD ディレクトリ全体を保護します。ファイルと同様に、ディレクトリにもアクセスを制御する権限があります。ただし、ディレクトリにおける読み取り、書き込み、実行の権限の意味はファイルとは異なります。
- r (読み取り): ユーザーがディレクトリの内容をリスト表示すること(つまり、中のファイル名やサブディレクトリ名を見ること)を許可します。
- w (書き込み): ユーザーがディレクトリ内でファイルを作成、削除、名前変更することを許可します。この権限は強力で、ファイル自体の権限に関係なくディレクトリの内容を変更できてしまいます。
- x (実行): ユーザーがディレクトリ内に入ること(例:
cdコマンドの使用)や、その中のファイルやサブディレクトリにアクセスすることを許可します。実行権限がないと、読み取り権限があってもディレクトリ内のアイテムにアクセスすることはできません。
まず、RandD ディレクトリ自体を操作できるように、親ディレクトリである ~/project に移動します。
cd ..
次に、ls -ld コマンドを使用して、RandD ディレクトリの現在の所有権と権限を確認しましょう。ここで -d フラグは非常に重要です。これは ls に対し、ディレクトリの中身ではなく、ディレクトリ自体の情報を表示するように指示します。
ls -ld RandD
初期の出力は以下のようになります。
drwxrwxr-x 2 labex labex 28 Jun 26 10:36 RandD
これは、所有者(labex)がフルアクセス(rwx)、グループ(labex)もフルアクセス(rwx)、そしてその他はディレクトリの読み取りと進入のみが可能(r-x)であることを示しています。これを research チームのための適切な共同作業フォルダにするために、まずディレクトリのグループ所有権を research に変更する必要があります。
sudo chown :research RandD
次に、所有者(labex)とグループ(research)の両方にフルコントロールを与え、その他のアクセスを完全に削除するように権限を設定します。希望する権限は rwxrwx--- で、これは 8 進数コードで 770 に相当します。あなたはディレクトリの所有者なので、sudo を使わずに権限を変更できます。
chmod 770 RandD
最後に、変更を確認しましょう。
ls -ld RandD
出力に新しい所有権と権限が反映され、チームのためにディレクトリが保護されているはずです。
drwxrwx--- 2 labex research 28 Jun 26 10:36 RandD
これで、ユーザー labex と research グループのメンバーは RandD ディレクトリに対して完全な読み取り、書き込み、実行の権限を持ち、他のすべてのユーザーはアクセスできなくなりました。安全な共同作業スペースの設定に成功しました。
まとめ
この実験では、Linux 環境でワークスペースを準備するための基本的な手順を学びました。これには、mkdir コマンドによる新しいディレクトリの作成、cd による移動、および touch による空ファイルの作成が含まれます。また、ls -l コマンドを使用して新しく作成されたファイルのプロパティを詳細に確認し、デフォルトの所有者、グループ、権限設定を観察しました。これがその後の管理タスクの基礎となりました。
この基礎の上に、Linux ファイルシステムのセキュリティの核心概念を探索しました。実験では、chown コマンドを使用してファイルの所有権を変更し、別のユーザーやグループに制御を移譲する方法を実演しました。その後、chmod コマンドを使用して、所有者、グループ、およびその他に対する読み取り、書き込み、実行の権限を修正する方法を学びました。最後に、これらの権限の概念をディレクトリに特化して適用し、そこに含まれるファイルへのアクセスを制御する方法を学習しました。



