Kali Linux におけるファイル操作とナビゲーション

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、サイバーセキュリティやペネトレーションテスト(侵入テスト)で広く利用されている強力なオペレーティングシステム、Kali Linux におけるファイル操作とナビゲーションの基礎を学びます。ハンズオン形式の演習を通じて、pwdlscdtouchnanocprmcat といった必須の Linux コマンドに慣れ親しんでいただきます。この実験は、Linux 環境でのファイルやディレクトリ操作の強固な基礎を築けるよう、ステップバイステップのガイドを提供します。すべての作業は、自動的にセットアップされた Kali Linux の Docker コンテナ内で行われます。ターミナルを開くと、直接コンテナのシェルに接続され、すぐに練習を開始できる状態になります。

Kali Linux コンテナでの準備

最初のステップでは、すべての演習を行う Kali Linux コンテナ環境について確認します。このコンテナは LabEx の仮想マシン(VM)内に自動的に構築されています。ターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されるため、手動で起動したり接続したりする必要はありません。

初心者の方向けに基本概念を説明します。Kali Linux は、サイバーセキュリティ業務に特化した Linux ディストリビューションであり、ペネトレーションテスト用のツールが多数搭載されています。これを Docker コンテナで実行することで、ホストシステムに影響を与えることなく、隔離された軽量な環境で学習を進めることができます。使用するターミナルは、コマンドを通じてこの環境とやり取りするための入り口となります。

以下の手順に従って、正しい環境にいることを確認してください。

  1. LabEx VM 環境でターミナルを開きます。Xfce デスクトップ上のターミナルアイコンをクリックするか、LabEx インターフェースに用意されているターミナルを使用してください。開くと、Kali Linux コンテナのシェルに入ったことを示すウェルカムメッセージが表示されます。プロンプトには root@xxxxxxxxxxxx:/# と表示され、コンテナ内に root ユーザーとしてログインしていることがわかります。
Kali Linux コンテナシェルの画像
  1. 次のコマンドを入力して Enter キーを押し、ファイルシステム内での現在の場所を確認します。

    pwd

    出力結果は以下のようになります。

    /

    これは、あなたが「ルートディレクトリ」にいることを意味します。ルートディレクトリは、Linux のファイルシステム階層における最上位のレベルです。pwd コマンドは "print working directory"(作業ディレクトリを表示する)の略で、現在の場所を確認するために使用されます。

  2. 以降のすべてのステップは、この Kali Linux コンテナのシェル内で実行してください。誤って exit と入力したり Ctrl+D を押したりして終了してしまった場合は、再度 LabEx VM のターミナルを開き直せば、自動的にコンテナに再接続されます。

これで、Kali Linux コンテナ内での開始地点を確認できました。次のステップでは、現在のディレクトリの中身を調べてみましょう。

ls によるディレクトリ内容の確認

このステップでは、Kali Linux コンテナ内で ls コマンドを使用して、ディレクトリの内容を表示する方法を学びます。このコマンドは、操作を行う前に現在の場所にどのようなファイルやフォルダがあるかを把握するために不可欠です。

初心者向けの重要な概念を解説します。Linux では、ファイルシステムはディレクトリ(フォルダ)の中にファイルや他のディレクトリが含まれる「ツリー構造」になっています。ls コマンドはディレクトリの中身をリスト表示し、何が利用可能かを確認するのに役立ちます。また、ls にオプションを付けることで、リストの詳細情報を取得することもできます。

すでに Kali Linux コンテナのシェルにいますので、以下の手順でルートディレクトリを探索してみましょう。

  1. 次のコマンドを入力して Enter キーを押し、現在のディレクトリ(ルートディレクトリ /)の内容を表示します。

    ls

    出力は以下のようになります。

    bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

    これらは Linux システムにおける標準的なディレクトリです。例えば、bin には実行ファイルが、etc には設定ファイルが格納されています。

  2. これらのディレクトリの詳細情報を確認するには、ls コマンドに -l オプションを付けて「ロングフォーマット」で表示します。次のコマンドを入力して Enter キーを押してください。

    ls -l

    出力には、権限(パーミッション)、所有者、サイズ、更新日時などの追加情報が表示されます。

    total 72
    drwxr-xr-x   2 root root  4096 Oct 10 10:00 bin
    drwxr-xr-x   2 root root  4096 Oct 10 10:00 boot
    drwxr-xr-x  13 root root  4096 Oct 10 10:00 dev
    drwxr-xr-x  85 root root  4096 Oct 10 10:00 etc
    ...

    -l オプションを使うことで、ディレクトリ内の各項目の属性を理解するのに役立ちます。

  3. 次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。

ls コマンドを使ってルートディレクトリの内容を確認することができました。次のステップでは、ディレクトリ間を移動する方法を学びます。

cd によるディレクトリの移動

このステップでは、cd コマンドを使用して Kali Linux コンテナ内のディレクトリ間を移動する方法を学びます。cd は "change directory"(ディレクトリを変更する)の略で、ファイルシステム内を移動して異なる場所にアクセスするための、Linux 操作における極めて重要なスキルです。

初心者のための基本概念を説明します。Linux のファイルシステムは、最上部のルートディレクトリ / から枝分かれした木のような構造をしています。cd を使って移動することで、特定のファイルやツールが保存されている場所にアクセスできます。/home のようなフルパス(絶対パス)を指定することも、.. というショートカットを使って一つ上の親ディレクトリに移動することもできます。

Kali Linux コンテナのシェルで、以下の手順に従って移動の練習をしましょう。

  1. 次のコマンドを入力して Enter キーを押し、現在の場所を確認します。

    pwd

    出力は以下の通りです。

    /

    ルートディレクトリにいることが確認できました。

  2. 次のコマンドを入力して Enter キーを押し、/home ディレクトリに移動します。

    cd /home

    cd コマンドにより、現在の作業ディレクトリが指定したパス(この場合は /home)に変更されます。

  3. 次のコマンドを入力して Enter キーを押し、新しい場所を確認します。

    pwd

    出力は以下の通りです。

    /home
  4. /home ディレクトリの内容をリスト表示して、何があるか確認してみましょう。

    ls

    コンテナは最小限の構成で起動しているため、出力は空か、ごくわずかな内容が表示されるはずです。

  5. .. ショートカットを使用して、ルートディレクトリに戻ります。次のコマンドを入力して Enter キーを押してください。

    cd ..

    これにより、現在の場所から一つ上の階層である親ディレクトリ(ここでは /)に移動します。

  6. 再度、場所を確認します。

    pwd

    出力は以下の通りです。

    /
  7. 次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。

cd コマンドを使ったディレクトリの移動方法を習得しました。次のステップでは、ファイル管理の練習のために、作業用ディレクトリとファイルを作成します。

mkdir、touch、nano によるファイルとディレクトリの作成・編集

このステップでは、Kali Linux コンテナ内で mkdirtouchnano コマンドを使用して、ディレクトリやファイルを作成し、テキストファイルを編集する方法を学びます。これらは Linux でデータを整理・管理するための必須スキルです。

基本的な概念を説明します。ディレクトリは、ファイルや他のディレクトリを保管するための「フォルダ」のようなもので、mkdir (make directory) で作成します。touch コマンドは空のファイルを作成し、一時的なファイル作成などに便利です。nano コマンドはターミナル内で動作するシンプルなテキストエディタを開き、ファイルの内容を追加・修正できます。

以下の手順に従って、Kali Linux コンテナ内にディレクトリとファイルを作成してみましょう。

  1. 現在の場所を確認します。

    pwd

    出力は以下の通りです。

    /

    もしルートディレクトリにいない場合は、cd / で移動してください。

  2. ファイルを整理するために、ルートディレクトリに myproject という名前の新しいディレクトリを作成します。

    mkdir /myproject

    コマンドが正常に実行された場合、出力は表示されません。これで /myproject というパスにディレクトリが作成されました。

  3. myproject ディレクトリに移動します。

    cd /myproject
  4. 場所を確認します。

    pwd

    出力は以下の通りです。

    /myproject
  5. touch コマンドを使用して、myproject ディレクトリ内に notes.txt という名前の空のテキストファイルを作成します。

    touch notes.txt

    成功すれば出力は表示されません。/myproject/notes.txt という空ファイルが作成されました。

  6. ディレクトリの内容をリスト表示して、ファイルが作成されたか確認します。

    ls

    出力に以下が表示されるはずです。

    notes.txt
  7. この最小限の Kali Linux コンテナには nano がプリインストールされていない可能性があるため、まずインストールします。以下のコマンドを入力してパッケージリストを更新し、nano をインストールしてください。各コマンドの後に Enter キーを押します。

    apt update
    apt install -y nano

    最初のコマンド apt update はパッケージリストを最新の状態にし、2 番目のコマンド apt install -y nano は確認メッセージを表示せずに nano エディタをインストールします。インストールには少し時間がかかり、進行状況がターミナルに表示されます。

  8. nano エディタを使用して notes.txt に内容を追加します。

    nano notes.txt
  9. nano が開くと、画面下部にメニューが表示された空白の画面になります。以下のテキストを入力してください。

    Learning file management in Kali Linux.

    必要に応じて矢印キーでカーソルを移動できます。

  10. 変更を保存して nano を終了するには、以下の操作を行います。

    • Ctrl + O を押して変更を書き込み(WriteOut)、Enter キーを押してファイル名を確定します。
    • Ctrl + X を押してエディタを終了します。ターミナル画面に戻ります。
  11. 次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。

mkdirtouchnano を使って、ディレクトリとファイルの作成、および内容の編集に成功しました。次のステップでは、ファイルのコピーと削除について学びます。

cp と rm によるファイルのコピーと削除

このステップでは、Kali Linux コンテナ内で cprm コマンドを使用して、ファイルをコピーおよび削除する方法を学びます。これらの操作は、バックアップの作成や不要なデータの整理など、ファイル管理において非常に重要です。

初心者向けに概念を説明します。cp コマンドは "copy" の略で、ファイルやディレクトリを別の場所へ、あるいは別の名前で複製します。rm コマンドは "remove" の略で、ファイルやディレクトリを削除します。Linux では rm で削除したものは「ゴミ箱」に入らず、簡単に復元できないため、使用する際は十分に注意してください。

Kali Linux コンテナのシェルで、/myproject ディレクトリを使用して練習しましょう。

  1. 現在の場所を確認します。

    pwd

    出力は以下の通りです。

    /myproject

    もし /myproject にいない場合は、以下で移動してください。

    cd /myproject
  2. notes.txt が存在することを確認します。

    ls

    出力に以下が表示されるはずです。

    notes.txt
  3. cp コマンドを使用して、同じディレクトリ内に notes.txt のコピーを notes_backup.txt という名前で作成します。

    cp notes.txt notes_backup.txt

    成功すれば出力は表示されません。これで /myproject 内に notes.txt の複製である notes_backup.txt が作成されました。

  4. コピーが作成されたか確認します。

    ls

    出力は以下のようになります。

    notes.txt  notes_backup.txt
  5. rm コマンドを使用して、コピーしたファイル notes_backup.txt を削除します。

    rm notes_backup.txt

    成功すれば出力は表示されません。これにより /myproject から notes_backup.txt が削除されました。

  6. 再度リストを表示して、ファイルが削除されたか確認します。

    ls

    出力は以下の通りです。

    notes.txt
  7. 最後のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。

cprm を使ったファイルのコピーと削除方法を学びました。最後のステップでは、エディタを開かずにファイルの内容を確認する方法を学びます。

cat によるファイル内容の表示

最後のステップでは、Kali Linux コンテナ内で cat コマンドを使用して、ファイルの内容を表示する方法を学びます。これは、エディタを開かずにターミナル上で素早くファイルの中身を確認する手法です。

初心者向けに解説します。cat コマンドは "concatenate"(連結する)の略で、ファイルの内容をターミナルに一括表示するために使われます。nano のような編集可能なエディタとは異なり、cat は読み取り専用の表示を行うため、小さなファイルやスクリプトの内容をサッと確認するのに最適です。

Kali Linux コンテナのシェルで、/myproject 内のファイルの内容を確認しましょう。

  1. 現在の場所を確認します。

    pwd

    出力は以下の通りです。

    /myproject

    もし /myproject にいない場合は、以下で移動してください。

    cd /myproject
  2. notes.txt が存在することを確認します。

    ls

    出力に以下が表示されるはずです。

    notes.txt
  3. cat コマンドを使用して notes.txt の内容を表示します。

    cat notes.txt

    ファイルの内容が以下のように表示されます。

    Learning file management in Kali Linux.

    もしファイルが空だったり存在しなかったりする場合は、何も表示されないかエラーメッセージが表示されます。

  4. このままコンテナのシェルでさらに探索を続けることができます。LabEx VM のターミナルに戻りたい場合は、exit と入力するか Ctrl+D を押してください。ターミナルを再度開けば、いつでも自動的にコンテナに再接続されます。

cat を使ってファイルの内容を表示する方法を学び、この実験の基本的なファイル・ディレクトリ管理タスクをすべて完了しました。

まとめ

この実験では、Docker コンテナ内の Kali Linux でファイル操作とナビゲーションの基本スキルを習得しました。まず、ターミナルから自動的にアクセスできるコンテナ環境に慣れることから始めました。次に、現在地を確認する pwd、ディレクトリの内容をリスト表示する ls、ディレクトリ間を移動する cd といった必須コマンドを学びました。さらに、mkdirtouch によるディレクトリとファイルの作成、nano による内容の編集、cprm によるコピーと削除、そして cat によるファイル内容の表示を実践しました。これらのスキルは、Linux 環境における操作の強固な土台となり、Kali Linux を使用したサイバーセキュリティ業務において極めて重要です。