Kali のユーザーと権限を管理する

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

はじめに

セキュリティツールや証拠ファイルは、ユーザーの権限で扱われます。そのユーザー情報を理解すると、すべてのアカウントにすべてのファイルを公開することなく、課題に必要な権限を選べます。

Kali 内に演習アカウントを作り、専用の非公開ディレクトリを割り当て、許可されるアクセスと拒否されるアクセスの両方をテストします。この実習はローカルユーザーとファイル権限を扱います。プロセスとログは後の実習で学びます。

ユーザーを識別して演習アカウントを作る

このステップでは、一般ユーザーの身元と管理者権限を区別し、Kali 内に別のローカルアカウントを作ります。

準備済みの Kali シェルに入り、共有ワークスペースを選びます。

kali
cd /home/labex/project

id は、数値のユーザー ID(UID)、プライマリグループ ID(GID)、所属グループを表示します。

id

ユーザー名は kali です。数値の ID は環境によって異なる場合があります。UID 0 は管理者である root を示します。一般アカウントの UID は 0 以外です。

sudo は許可されたコマンドを、より高い権限で実行します。この演習コンテナでは、Kali の学習者はパスワードなしで使えます。この許可はコンテナ内に限られ、すべてのコマンドを root として実行する理由にはなりません。一つのコマンドで root にユーザー名を表示させます。

sudo whoami

出力は root です。昇格はそのコマンドの終了時に終わります。

whoami

出力は引き続き kali です。

ローカルアカウントには、名前、UID、グループ、ホームディレクトリ、ログインシェルがあります。useradd はアカウントを作成し、管理者権限を必要とします。--create-home はホームディレクトリを、--user-group は同名のプライマリグループを作り、--shell /bin/bash はシェルに Bash を選びます。

sudo useradd --create-home --user-group --shell /bin/bash practice-analyst

新しい実習では一度だけ実行してください。既存アカウントのメッセージは、既にアカウントがあることを意味します。この演習にパスワードや SSH アクセスは不要です。id に名前を渡して、新しいユーザー情報を調べます。

id practice-analyst

出力では、ユーザーとプライマリグループの両方が practice-analyst です。その UID は kali と root と異なるはずです。

所有者と非公開の権限を設定する

このステップでは、案件用ディレクトリを作り、所有者を変更して、割り当てたアカウントだけがアクセスできるようにします。

共有ワークスペースに戻ります。

cd /home/labex/project

一般ユーザーとしてディレクトリを作ります。

mkdir case-files

ls -ld はディレクトリ自体を表示します。-l は詳細表示を要求し、-d は内容の一覧表示を防ぎます。

ls -ld case-files

出力には権限の文字、所有者、グループが含まれます。最初の所有者は kali です。先頭の d はディレクトリを意味します。続く 9 文字は、所有者、グループ、その他に対する読み取り(r)、書き込み(w)、実行(x)の 3 組です。ディレクトリでは、読み取りは名前の一覧表示、書き込みは項目の変更、実行は項目へたどることを許可します。

chown は所有者を変更します。user:group 形式は所有者とグループの両方を設定します。別のアカウントへ所有権を渡すには管理者権限が必要です。

sudo chown practice-analyst:practice-analyst case-files

chmod は権限を変更します。数値形式では、読み取りが 4、書き込みが 2、実行が 1 です。合計 7 は三つすべて、0 は何も許可しません。モード 700 は所有者に完全なアクセスを与え、グループとその他にはディレクトリアクセスを与えません。

sudo chmod 700 case-files
ls -ld case-files

先頭は drwx------、所有者とグループは practice-analyst のはずです。日時や数値のサイズは異なる場合があります。所有者の設定は、どのアカウントが所有者権限を得るかを選び、モードは各区分に与えるアクセスを定めます。

意図したアカウントでアクセスをテストする

このステップでは、権限一覧だけに頼らず、実際のユーザー権限でアクセスを確認します。

sudo -u NAME は、root ではなく指定ユーザーとしてコマンドを実行します。案件ディレクトリの所有者を使い、非公開ディレクトリにファイルを作ります。

sudo -u practice-analyst touch /home/labex/project/case-files/checked.txt

出力は表示されません。同じアカウントで結果を調べます。

sudo -u practice-analyst ls -l /home/labex/project/case-files

空の checked.txt は practice-analyst が所有しているはずです。作成できたことは、このアカウントがディレクトリをたどり、書き込める証拠です。

一般の Kali アカウントには、このアクセスがないはずです。次のコマンドは権限拒否のメッセージで失敗する想定です。これが制限の実演です。エラーの後も続けてください。

ls /home/labex/project/case-files

root は、明示的に許可されたコマンドで引き続きディレクトリを調べられます。

sudo ls /home/labex/project/case-files

checked.txt が表示されるはずです。非公開の権限は一般アカウントを制限し、root は管理者権限を保持します。通常の作業には kali を使い続け、必要な個別操作だけを昇格してください。これらのコマンドは、ホストの学習者アカウントや LabEx が VM に接続する方法を変更しません。

まとめ

ユーザー情報を調べ、必要な管理操作に sudo を使い、アカウントを作成し、ディレクトリの所有者と権限を設定しました。意図したアカウントが作業でき、別の一般アカウントはアクセスを拒否されることを確認しました。