【ITニュース解説】100 Days of DevOps, Day 2: Temporary User Setup with Expiry
2025年09月10日に「Dev.to」が公開したITニュース「100 Days of DevOps, Day 2: Temporary User Setup with Expiry」について初心者にもわかりやすく解説しています。
ITニュース概要
DevOpsでは、セキュリティと管理効率化のため、有効期限付きの一時ユーザーが有用だ。期限とパスワードを設定すると自動失効し、手作業を減らしシステムを安全かつクリーンに保てる。
ITニュース解説
システムエンジニアを目指す初心者の皆さんにとって、ITシステムを安全かつ効率的に運用する上で「ユーザー管理」は避けて通れない非常に重要なタスクの一つです。これは、誰がシステムにアクセスできるのか、どのような権限を持つのかを設定する作業を指します。特に「DevOps」と呼ばれる、開発チームと運用チームが連携して継続的にソフトウェアを開発・リリースしていくアプローチでは、多くの人が様々な環境やサーバーにアクセスする必要があります。しかし、その全員が永続的なアカウントを必要とするわけではありません。
例えば、新しい機能を開発するプログラマーが短期間だけ特定のテストサーバーにアクセスする必要があったり、システム監査のために一時的に外部の専門家がサーバーのログを確認する必要があったりする場合があります。また、特定のプロジェクトのために契約したテスターが、プロジェクト期間中のみアクセス権を持つようなケースも考えられます。このような限られた期間のアクセス要件に対して、常に永続的なアカウントを発行していると、後で不要になったアカウントを一つ一つ手動で削除する手間が発生し、管理が複雑になります。さらに、削除忘れが生じると、そのアカウントがセキュリティ上の脆弱性となる可能性も出てきます。
そこで役立つのが「一時的なユーザーアカウント」という考え方です。これは、あらかじめ設定した有効期限が来ると、そのユーザーアカウントが自動的に無効になるようにする仕組みです。この方法を用いることで、手動でのアカウント削除作業が不要となり、システム管理者の負担を大幅に軽減できます。
一時的なユーザーアカウントを設定することには、複数の明確なメリットがあります。まず最も重要な点は「セキュリティの向上」です。不要になった古いアカウントがシステム上に放置されていると、それが不正アクセスの経路として悪用されるリスクが常に存在します。しかし、有効期限が設定された一時ユーザーであれば、必要な期間が過ぎれば自動的にアカウントが無効になるため、潜在的なセキュリティリスクを未然に防ぐことができます。次に「自動化による運用の効率化」が挙げられます。一時ユーザーは有効期限が来れば自動的に機能停止するため、手動でユーザーアカウントを監視し、不要になった時点で削除する手間がなくなります。これにより、システム管理者の作業負担が減り、ヒューマンエラーのリスクも軽減されます。さらに、「コンプライアンスへの対応」にも有効です。多くの企業や組織では、情報セキュリティに関する様々な規制や監査が求められます。システムへのアクセス履歴や、現在有効なアカウントの状態を常にクリアに保つことは、監査対応において非常に有利に働きます。最後に「システムをクリーンに保つ」ことにも貢献します。使われていないアカウントが大量にシステム内に存在すると、管理画面が煩雑になり、本当に必要なアカウントの特定が難しくなることがあります。一時ユーザーを活用することで、システムは常に必要なアカウントだけが存在する、整理された状態を維持できます。
それでは、実際にLinuxシステムで一時的なユーザーアカウントを作成し、管理する具体的な方法について見ていきましょう。この解説では、コマンドラインインターフェース(CLI)を使って作業を進めます。
最初のステップは、有効期限付きのユーザーアカウントを作成することです。これにはuseraddコマンドを使用します。useraddは新しいユーザーアカウントを作成するための基本的なコマンドで、様々なオプションを指定できます。一時ユーザーを設定する際に特に重要なのは-eオプションです。このオプションに続けて「YYYY-MM-DD」の形式で有効期限の日付を指定します。例えば、2026年1月28日に有効期限が切れる「mila」という名前のユーザーを作成したい場合、次のようにコマンドを入力します。sudo useradd -e 2026-01-28 mila。ここでコマンドの先頭にあるsudoは、システムに変更を加えるために必要な管理者権限でコマンドを実行するためのものです。システムの設定を変更する際には、このsudoが必要になることが多いと覚えておくと良いでしょう。このコマンドを実行すると、「mila」というユーザー名のアカウントが作成され、同時にそのアカウントが指定された日付で自動的に無効になるよう設定されます。
ユーザーアカウントを作成したら、次に「パスワードを設定」する必要があります。パスワードが設定されていないユーザーは、通常の方法ではシステムにログインできません。これは、作成されたアカウントが実際に使用されるために不可欠な手順です。パスワードを設定するにはpasswdコマンドを使用します。先ほど作成した「mila」ユーザーにパスワードを設定する場合、sudo passwd milaと入力します。このコマンドを実行すると、システムは新しいパスワードを2回入力するよう求めます。これは、入力ミスがないかを確認するためです。パスワードは推測されにくい、強力なものを設定することがセキュリティ上非常に重要です。
ユーザーアカウントが正しく作成され、意図した有効期限が設定されているかを確認することも大切です。設定が期待通りに行われているかを確認するには、chage -lコマンドを使います。chageコマンドは、ユーザーのパスワード有効期限やアカウント有効期限などの情報を管理するためのもので、-lオプションを付けると、指定したユーザーの詳細な情報をリスト形式で表示します。例えば、「mila」ユーザーの有効期限を確認するには、sudo chage -l milaと入力します。このコマンドの出力には、「Account expires」という項目として「Jan 28, 2026」のような形で、設定した日付が表示されるはずです。これにより、ユーザーアカウントが期待通りに一時的なものとして設定されていることを確認できます。
ここまでの手順を、より効率的に、一度のコマンド実行で完了させる方法も存在します。これは「ワンライナー」と呼ばれるテクニックで、複数のコマンドを連結して実行するものです。先ほどの手順では、ユーザー作成とパスワード設定を別々のコマンドで行いましたが、これらを一度に実行するコマンドとして、次のような例があります。sudo useradd -e 2026-01-28 mila && echo "mila:DevOps@123" | sudo chpasswd。このコマンドは、まずuseradd -e 2026-01-28 milaで「mila」ユーザーを作成し、有効期限を設定します。そして、&&という記号によって、前のコマンドが成功した場合にのみ、次のコマンドが実行されるようになっています。続くecho "mila:DevOps@123" | sudo chpasswdの部分では、「mila:DevOps@123」という文字列、つまり「ユーザー名:パスワード」の形式をechoコマンドで標準出力に出力し、その出力をパイプ|を使ってchpasswdコマンドの標準入力に渡しています。chpasswdコマンドは、標準入力から受け取ったユーザー名とパスワードのリストを使って、パスワードを一括設定するコマンドです。これにより、ユーザー作成、有効期限設定、パスワード設定という一連の作業を、一度に完了させることができます。ただし、この方法でパスワードを設定する場合、パスワードがコマンド履歴に残ってしまう可能性があるため、運用には注意が必要です。
まとめると、一時的なユーザーアカウントの管理は、DevOpsのような現代的なIT運用において非常に重要な実践的なスキルです。useradd -eコマンドを使うことで、有効期限付きのユーザーを簡単に作成できます。作成したユーザーにはpasswdまたはchpasswdコマンドでパスワードを設定し、chage -lコマンドで設定内容をいつでも確認できます。これらの基本的なコマンドを習得することは、システムをより安全に、そして効率的に運用するための第一歩となります。手作業を減らし、セキュリティリスクを低減し、常にクリーンなシステム状態を保つために、一時ユーザーの活用は欠かせない考え方なのです。