DAY 05: 鍵の守護者

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

はじめに

LabEx Corporationでの1週間の最終日へようこそ!最初の偵察任務から始まり、要塞の守護者となるまでの素晴らしい旅でしたね。今、会社はあなたを最も信頼されるポジションである、プロジェクト・フェニックスの「鍵の守護者(Keeper of the Keys)」に昇格させます。

CTOがあなたを呼び出し、重要なブリーフィングを行いました。「プロジェクト・フェニックスは最終フェーズに入っており、誰がシステムにアクセスできるかを完全に制御する必要がある。プロジェクトの最終段階を率いるシニア開発者、Brenda Smithを新たに迎えることになった。しかし残念なことに、以前のチームの契約社員であるJohn Doeが、君が調査したセキュリティインシデントの際に不正アクセスを行っていたことが判明した。彼のアクセス権は直ちに剥奪しなければならない」

鍵の守護者として、あなたはプロジェクト・フェニックスへの入り口を管理することになります。あなたのユーザー管理の判断が、誰がTechNovaの最も重要なプロジェクトに貢献でき、誰がセキュリティ上の理由で締め出されるかを決定します。

今こそ、Linuxユーザー管理の完全な習得を証明する時です。プロジェクト・フェニックスの未来は、必要な人にアクセス権を与え、システムを危険にさらす可能性のある者を拒否するあなたの能力にかかっています。この任務を完遂しましょう!

新規開発者のシステムへのオンボーディング

最初のタスクは、プロジェクト・フェニックスの最終開発フェーズを率いるシニア開発者、Brenda Smithのユーザーアカウントを作成することです。TechNovaのポリシーでは、ユーザー名は first_initial.last_name(名の一文字目.姓)の形式に従う必要があります。

タスク

  • Brenda Smithの新規ユーザーアカウントを作成してください。

要件

  • ユーザー名は b.smith であること。
  • useradd コマンドを使用してシステムに新規ユーザーを追加してください。sudo 権限が必要です。

ヒント

  • このチャレンジでは、対話型の adduser ではなく、標準の useradd コマンドを使用することが求められています。
  • 管理者権限でコマンドを実行するために sudo を使用することを忘れないでください。

新規ユーザーアカウントの作成に成功すると、システムのユーザーデータベースにエントリが表示されます:

$ grep "b.smith" /etc/passwd
b.smith:x:5002:5004::/home/b.smith:/bin/sh

ユーザーアカウントは、システムによって割り当てられたユーザーIDとグループIDで作成されます。アカウントが存在することと詳細を確認するには、以下を使用します:

$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith)

新規ユーザー専用のホームディレクトリの作成

ユーザーを作成しましたが、重要なステップを忘れていました!プロジェクト・フェニックスの最終フェーズを率いるシニア開発者であるBrendaには、重要なプロジェクトファイルや開発ツールを保存するための安全なワークスペースが必要です。彼女のためにホームディレクトリが作成されていることを確認しなければなりません。

タスク

  • ユーザー b.smith のホームディレクトリを /home/b.smith に作成してください。

要件

  • ホームディレクトリはユーザー b.smith のために作成される必要があります。
  • useradd コマンドのオプションを使用して、ホームディレクトリを自動的に作成してください。もし既にホームディレクトリなしでユーザーを作成してしまった場合は、一度ユーザーを削除してから正しく再作成する必要があります。
  • 有効な解決策には -m または --create-home が含まれ、フラグはユーザー名の前後に配置できます。

ヒント

  • ユーザーを削除するには userdel コマンドを使用します。例:sudo userdel b.smith
  • useradd コマンドには、ユーザーのホームディレクトリを作成するための特定のフラグがあります。man useradd ページで -m--create-home のようなオプションを確認してください。

ホームディレクトリ付きでユーザーを作成した後、ホームディレクトリのリストに新しいディレクトリが表示されるはずです:

$ ls -la /home/
drwxr-xr-x 1 root root 47 Sep 3 16:32 .
drwxr-xr-x 1 root root 62 Sep 3 16:31 ..
-rw-r--r-- 1 root root 58 Jul 18 2024 .zshrc
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 b.smith
drwxr-x--- 2 j.doe j.doe 57 Sep 3 16:31 j.doe
drwxr-x--- 1 labex labex 4096 Sep 3 16:35 labex

ホームディレクトリは、制限された権限(所有者とグループのみがアクセス可能)でユーザーによって所有されます。内容を表示するには、適切な権限が必要か、sudo を使用する必要がある場合があります:

$ sudo ls -la /home/b.smith/
drwxr-x--- 2 b.smith b.smith 57 Sep 3 16:32 .
drwxr-xr-x 1 root root 47 Sep 3 16:32 ..
-rw-r--r-- 1 b.smith b.smith 220 Sep 3 16:32 .bash_logout
-rw-r--r-- 1 b.smith b.smith 3771 Sep 3 16:32 .bashrc
-rw-r--r-- 1 b.smith b.smith 655 Sep 3 16:32 .profile

新規ユーザーへの初期パスワードの割り当て

ユーザーアカウント b.smith は作成されましたが、現在はロックされています。Brendaはパスワードなしではプロジェクト・フェニックスのシステムにアクセスし、リーダーとしての役割を開始することができません。次のタスクは、彼女のアカウントに初期の安全なパスワードを設定することです。

タスク

  • ユーザー b.smith のパスワードを設定してください。

要件

  • 標準のLinuxコマンドを使用してユーザーのパスワードを変更してください。
  • 新しいパスワードの入力と確認を求められます。password123 のような単純なパスワードを使用できます。

ヒント

  • パスワードを設定または変更するコマンドは passwd です。
  • 他のユーザーのパスワードを変更するため、sudo 権限が必要です。構文は sudo passwd <username> です。

パスワードの設定に成功すると、ユーザーアカウントのシャドウファイルにパスワードハッシュが保存されます。シャドウファイルを確認することで検証できます(注:これにはroot権限が必要です):

$ sudo grep "^b.smith:" /etc/shadow
b.smith:$y$j9T$XbJLH9LJgY518Th4qcd1V0$NrfHOJ2MGm/1OhLGfpfMQkvPasV23Eenhwl9bA0i8O4:20334:0:99999:7:::

新規開発者を「developers」グループに追加する

Brendaが今週ずっと保護してきたプロジェクト・フェニックスのファイルやリポジトリにアクセスできるようにするため、彼女を developers グループに追加する必要があります。これはTechNovaで働いている間ずっと関わってきたグループであり、プロジェクトに必要な特別な権限を持っています。

タスク

  • ユーザー b.smithdevelopers グループに追加してください。

要件

  • ユーザー b.smithdevelopers グループのメンバーであること。
  • ユーザーの既存のグループメンバーシップが削除されないこと。

ヒント

  • usermod コマンドはユーザーアカウントを変更するために使用されます。
  • -a (append) および -G (groups) フラグを探してください。これらを組み合わせて使用することで、既存のグループから削除することなく新しいグループにユーザーを追加できます。

ユーザーをdevelopersグループに追加することに成功すると、ユーザーのグループリストにグループメンバーシップが反映されます:

$ groups b.smith
b.smith : b.smith developers

id コマンドを使用して、より詳細なグループ情報を確認することもできます:

$ id b.smith
uid=5002(b.smith) gid=5004(b.smith) groups=5004(b.smith),5003(developers)

これでユーザーは developers グループがアクセスできるファイルやディレクトリにアクセスできるようになります。グループファイルを確認してグループが存在することを確認できます:

$ grep "^developers:" /etc/group
developers:x:5003:b.smith

b.smith がグループメンバーのリストに表示されていることに注目してください。これは、既存のグループメンバーシップを保持したまま、ユーザーが正常にグループに追加されたことを確認するものです。

退職する従業員のアカウントを一時的に無効化する

今週最後のタスクであり、プロジェクト・フェニックスにとって最も重要なセキュリティアクションです。John Doe (j.doe) は、以前の調査でセキュリティインシデントの際に不正アクセスを行った可能性があると特定されました。CTOは、すべてのTechNovaシステムから彼を直ちに排除するよう命じました。しかし、法務およびコンプライアンスチームは進行中のセキュリティ監査のために彼のファイルを保持する必要があるため、完全に削除するのではなく、アカウントをロックしなければなりません。

タスク

  • ログインを防ぐために j.doe のユーザーアカウントをロックしてください。

要件

  • ユーザーアカウント j.doe がロックされていること。
  • ユーザーやそのホームディレクトリを削除しないでください。

ヒント

  • -L (lock) オプションを付けて usermod コマンドを使用できます。
  • あるいは、passwd コマンドにも同じ結果を得られる -l (lock) フラグがあります。
  • sudo を使用することを忘れないでください。

シャドウファイルを確認することで、アカウントがロックされていることを検証できます:

$ sudo grep "^j.doe:" /etc/shadow
j.doe:!:20334:0:99999:7:::

パスワードフィールドの先頭にある感嘆符 (!) に注目してください。これはアカウントがロックされていることを示しています。元のパスワードハッシュは、将来のロック解除のために ! の後に保持されています。

まとめ

おめでとうございます、鍵の守護者!LabEx Corporationでの素晴らしい最初の1週間を無事に終え、プロジェクト・フェニックスを最終完成に向けて守り抜きました。

この変革の1週間を通じて、あなたは新米のジュニアシステム管理者から、TechNovaの最も重要なシステムを任される信頼の守護者へと成長しました。最後のチャレンジでは、不可欠なユーザー管理コマンドを習得しました:

  • プロジェクト・フェニックスの完成を率いるシニア開発者のための新規ユーザーアカウント作成。
  • 重要なチームメンバーのための安全なホームディレクトリの設定。
  • passwd を使用した堅牢なパスワードポリシーの実装。
  • プロジェクト・フェニックスのリソースへの適切なアクセスを確保するためのグループメンバーシップ管理。
  • 監査証跡を保持しつつ、不正アクセスを無効化することによるシステムの保護。

初期の偵察からデジタルアーキテクチャ、ログ調査、セキュリティ実装、そして最終的なユーザー管理まで、あなたはプロのシステム管理者の完全なスキルセットを証明しました。CTOはあなたの正社員登用を確定し、すでに昇進の機会について話し合っています。

プロジェクト・フェニックスは今や安全な手に委ねられ、あなたの献身と専門知識のおかげでTechNovaの未来は安泰です!

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習