DAY 05: 鍵の守護者

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

はじめに

LabEx Corporation での最初の 1 週間の最終日へようこそ!最初の偵察任務から始まり、要塞の守護者(Fortress Guardian)へと成長したあなたの道のりは、実に見事なものでした。そして今、会社はあなたを究極の信頼を要するポジション、「プロジェクト・フェニックス」の**鍵の守護者(Keeper of the Keys)**に任命しました。

CTO があなたを呼び出し、重要なブリーフィングを始めました。「プロジェクト・フェニックスは最終段階に入っており、システムへのアクセス権を完全にコントロールする必要がある。最終的な追い込みをリードするシニアデベロッパーとして、ブレンダ・スミス(Brenda Smith)を迎え入れることになった。一方で、以前調査してもらったセキュリティインシデントの際、前チームの契約社員だったジョン・ドウ(John Doe)が不正なアクセス権を持っていたことが判明した。彼のアクセス権は直ちに剥奪しなければならない。」

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

Linux ユーザー管理の完全な習熟度を証明する時が来ました。プロジェクト・フェニックスの未来は、必要な者にアクセスを許可し、システムを危険にさらす可能性のある者を拒絶するあなたの手腕にかかっています。ミッションを開始しましょう!

新規開発者のシステム登録

最初のタスクは、プロジェクト・フェニックスの最終開発フェーズを率いるシニアデベロッパー、ブレンダ・スミスの新しいユーザーアカウントを作成することです。TechNova のポリシーでは、ユーザー名は 名の頭文字.姓 という形式に従う必要があります。

タスク

  • ブレンダ・スミスの新しいユーザーアカウントを作成してください。

要件

  • ユーザー名は b.smith としてください。
  • システムに新しいユーザーを追加するために適切なコマンドを使用してください。実行には sudo 権限が必要です。

ヒント

  • Linux でユーザーを追加するために使用されるコマンドは何ですか? useradd または adduser について調べてみてください。
  • 管理者権限でコマンドを実行するために 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)
✨ 解答を確認して練習

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

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

タスク

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

要件

  • ホームディレクトリはユーザー b.smith のために作成される必要があります。
  • useradd コマンドのオプションを使用して、ホームディレクトリを自動的に作成するようにしてください。すでにホームディレクトリなしでユーザーを作成してしまった場合は、一度ユーザーを削除してから正しく再作成する必要があるかもしれません。

ヒント

  • ユーザーを削除するには 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 は作成されましたが、現在はロックされた状態です。ブレンダはパスワードがなければ、リーダーとしての役割を開始するためにプロジェクト・フェニックスのシステムにアクセスすることができません。次のタスクは、彼女のアカウントに安全な初期パスワードを設定することです。

タスク

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

要件

  • ユーザーのパスワードを変更するための標準的な Linux コマンドを使用してください。
  • 新しいパスワードの入力と確認を求められます。この演習では、password123 のような簡単なパスワードを使用して構いません。

ヒント

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

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

$ sudo grep "^b.smith:" /etc/shadow
b.smith:$y$j9T$XbJLH9LJgY518Th4qcd1V0$NrfHOJ2MGm/1OhLGfpfMQkvPasV23Eenhwl9bA0i8O4:20334:0:99999:7:::
✨ 解答を確認して練習

新規開発者の「developers」グループへの追加

ブレンダが、あなたが今週ずっと守ってきたプロジェクト・フェニックスのファイルやリポジトリにアクセスできるようにするには、彼女を 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 がグループメンバーのリストに表示されていることに注目してください。これにより、既存のグループメンバーシップを維持したまま、ユーザーがグループに正常に追加されたことが確認できます。

✨ 解答を確認して練習

退職予定者のアカウントの一時的な無効化

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

タスク

  • ユーザーアカウント j.doe をロックして、ログインできないようにしてください。

要件

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

ヒント

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

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

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

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

✨ 解答を確認して練習

まとめ

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

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

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

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

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