はじめに
LabEx Corporation での一週間の最終日へようこそ。最初の偵察任務から Fortress Guardian へと成長するまで、素晴らしい道のりでした。そして今、会社はあなたを究極の信頼を必要とする役職、Project Phoenix の 鍵の番人 に昇格させます。
CTO があなたを呼び止め、重要な説明を始めます。「Project Phoenix は最終段階に入りました。誰がシステムにアクセスできるのかを完全に管理する必要があります。最終作業を完了まで導く新しいシニア開発者、Brenda Smith を迎えることになりました。しかし残念ながら、以前のチームの契約社員だった John Doe が、先ほど調査したセキュリティインシデントの際に許可なくアクセスしていたことも判明しました。彼のアクセスは直ちに取り消す必要があります。」
鍵の番人であるあなたは、Project Phoenix への人的な入り口を管理することになりました。ユーザー管理に関するあなたの判断によって、TechNova の最重要プロジェクトに貢献できる人と、セキュリティ上の理由から締め出すべき人が決まります。
Linux のユーザー管理を完全に習得したことを示す時です。Project Phoenix の未来は、必要な人にアクセスを許可し、システムを危険にさらす可能性のある人にはアクセスを拒否できるかどうかにかかっています。この任務を完了しましょう。
新しい開発者をシステムに登録する
最初のタスクは、Project Phoenix の最終開発フェーズを率いるシニア開発者 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)
新しいユーザー専用のホームディレクトリを作成する
ユーザーは作成できましたが、重要な手順を一つ忘れています。Project Phoenix の最終フェーズを率いる Brenda には、重要なプロジェクトファイルや開発ツールを保存するための安全な作業領域が必要です。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 は Project Phoenix のシステムにアクセスしてリーダーとしての役割を始められません。次のタスクでは、アカウントに安全な初期パスワードを設定します。
タスク
- ユーザー
b.smithにパスワードを設定します。
要件
- ユーザーのパスワードを変更する標準的な Linux コマンドを使用します。
- 新しいパスワードの入力と確認を求められます。例として
password123のような簡単なパスワードを使用できます。
ヒント
- パスワードを設定または変更するコマンドは
passwdです。 - 別のユーザーのパスワードを変更するため、
sudo権限が必要です。構文はsudo passwd <username>です。
例
パスワードの設定に成功すると、ユーザーアカウントのパスワードハッシュが shadow ファイルに保存されます。shadow ファイルの確認で検証できます(root 権限が必要です)。
$ sudo grep "^b.smith:" /etc/shadow
b.smith:$y$j9T$XbJLH9LJgY518Th4qcd1V0$NrfHOJ2MGm/1OhLGfpfMQkvPasV23Eenhwl9bA0i8O4:20334:0:99999:7:::
新しい開発者を「developers」グループに追加する
Brenda が、今週あなたが保護してきた Project Phoenix のファイルやリポジトリにアクセスできるようにするには、Brenda を developers グループに追加する必要があります。これは TechNova でこれまで使用してきたグループで、プロジェクトに必要な特別な権限が設定されています。
タスク
- ユーザー
b.smithをdevelopersグループに追加します。
要件
- ユーザー
b.smithがdevelopersグループのメンバーになる必要があります。 - ユーザーが現在所属しているグループから脱退させないでください。
ヒント
- ユーザーアカウントを変更するには
usermodコマンドを使用します。 -a(append)と-G(groups)フラグを確認してください。この 2 つを組み合わせると、既存のグループを削除せずに新しいグループへ追加できます。
例
ユーザーを 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 が表示されていることを確認してください。これは、既存のグループ所属を維持したまま、ユーザーがグループに追加されたことを示します。
退職する従業員のアカウントを一時的に無効化する
これが今週最後のタスクであり、Project Phoenix にとって最も重要なセキュリティ対策です。John Doe(j.doe)は、以前の調査で、セキュリティインシデントの際に許可なくアクセスした可能性があると判断されました。CTO は、TechNova のすべてのシステムから直ちに彼を排除するよう命じています。ただし、法務チームとコンプライアンスチームは進行中のセキュリティ監査のために彼のファイルを保持する必要があります。そのため、アカウントを完全に削除せず、ロックしてください。
タスク
- ユーザーアカウント
j.doeをロックして、ログインできないようにします。
要件
- ユーザーアカウント
j.doeをロックする必要があります。 - ユーザーやそのホームディレクトリを削除しないでください。
ヒント
-L(lock)オプションを付けてusermodコマンドを使用できます。- または、
passwdコマンドの-l(lock)フラグでも同じ結果になります。 sudoの使用を忘れないでください。
例
shadow ファイルを確認すると、アカウントがロックされていることを検証できます。
$ sudo grep "^j.doe:" /etc/shadow
j.doe:!:20334:0:99999:7:::
パスワードフィールドの先頭に感嘆符(!)があることに注目してください。これはアカウントがロックされていることを示します。元のパスワードハッシュは、将来ロックを解除できるように ! の後ろに保持されます。
まとめ
おめでとうございます、鍵の番人。LabEx Corporation での素晴らしい最初の一週間を無事に完了し、Project Phoenix の完成に向けた最終段階を安全に整えました。
この実りある一週間を通して、あなたは新人の junior system administrator から、TechNova の最重要システムを守る信頼された管理者へと成長しました。最後のチャレンジでは、ユーザー管理に不可欠なコマンドを習得しました。
- Project Phoenix の完成を率いるシニア開発者用の新しいユーザーアカウントを作成しました。
- 重要なチームメンバー用に、安全なホームディレクトリを設定しました。
passwdを使用して、堅牢なパスワード管理を実施しました。- グループ所属を管理し、Project Phoenix のリソースへの適切なアクセスを確保しました。
- 監査証跡を保持したまま、許可されていないアクセスを無効化してシステムを保護しました。
最初の偵察からデジタルアーキテクチャ、ログ調査、セキュリティ実装、そしてユーザー管理まで、プロの System Administrator に必要なスキルを一通り示しました。CTO はあなたの正式採用を確認し、すでに昇進の可能性についても話し合っています。
Project Phoenix は今や安全に管理されており、あなたの献身と専門知識によって TechNova の未来も守られています。



