はじめに
この実験では、Linux システムにおける基本的なユーザーアカウント管理の操作を学びます。ユーザーアカウントの作成、変更、削除に加えて、パスワードの設定と変更も行います。これらは、Linux システム管理に欠かせない基本スキルです。Linux が初めてでも心配ありません。すべての手順を順番に説明します。
新しいユーザーの作成
まず、「joker」という名前の新しいユーザーアカウントを作成します。
- ターミナルを開きます。Linux のターミナルは、コマンドを入力するためのテキストインターフェースです。
- 次のコマンドを入力して、Enter キーを押します。
sudo useradd joker
コマンドの各部分は次の意味です。
sudoは、一時的にスーパーユーザー(管理者)の権限を取得するコマンドです。新しいユーザーの作成には、通常より高い権限が必要なため使用します。useraddは、新しいユーザーを作成するコマンドです。jokerは、作成するユーザー名です。
注:sudo を付けずにこのコマンドを実行すると、「permission denied」エラーが表示されます。一般ユーザーには新しいユーザーアカウントを作成する権限がなく、この操作はシステム管理者だけが実行できるためです。
ここでは、スーパーユーザーと一般ユーザーの違いを確認できます。一般ユーザーは新しいユーザーアカウントを作成できませんが、sudo を使用すると、一時的に権限を昇格して管理操作を実行できます。
- ユーザーが作成されたことを確認するため、
/etc/passwdファイルを調べます。
sudo grep -w 'joker' /etc/passwd
/etc/passwd ファイルは、ユーザーアカウントの一覧表のようなものです。各行が 1 つのユーザーアカウントを表し、複数の情報がコロン(:)で区切られています。
次のような出力が表示されます。
joker:x:5001:5001::/home/joker:/bin/sh
この行には、次の情報が含まれています。
- ユーザー名:joker
- パスワード:x(実際のパスワードは別の安全な場所に保存されています)
- ユーザーID: 5001
- グループ ID: 5001
- ホームディレクトリ:
/home/joker。ただし、まだ作成されていません - デフォルトシェル:
/bin/sh
ホームディレクトリ付きでユーザーを作成する
次に、「bob」という名前の別のユーザーを作成し、そのユーザー用のホームディレクトリも作成します。
- 次のコマンドを実行します。
sudo useradd -m bob
-m オプションを指定すると、ユーザーのホームディレクトリが作成されます。ホームディレクトリは、ユーザーがファイルや設定を保存する個人用フォルダーです。
- ホームディレクトリが作成されたことを確認します。
sudo ls -ld /home/bob
次のような出力が表示されます。
drwxr-x--- 2 bob bob 57 Jan 19 13:33 /home/bob
この出力は、次の内容を示しています。
- 先頭の
dは、対象がディレクトリであることを示します。 rwxr-x---は、このディレクトリに対して誰が読み取り、書き込み、実行できるかを示します。- 2 つの
bobは、このディレクトリのユーザー所有者とグループ所有者がどちらも bob であることを示します。 57は、ディレクトリのサイズをバイト単位で示します。Jan 19 13:33は、ディレクトリが作成された日時です。/home/bobは、ディレクトリの場所です。
ユーザーパスワードを設定する
次に、新しく作成したユーザーのパスワードを設定します。ここでは「joker」のパスワードを設定します。
- 次のコマンドを実行します。
sudo passwd joker
- 新しいパスワードを 2 回入力するよう求められます。この実験では、「password123」のような簡単なパスワードを使用します。
重要: パスワードを入力しても、画面には表示されません。これは、入力中のパスワードを他の人に見られないようにする Linux のセキュリティ機能です。入力を間違えた場合は、もう一度入力できます。 重要: このパスワードを忘れないでください。実験の後の手順で使用します。
- 成功すると、「passwd: password updated successfully」というメッセージが表示されます。
注:実際の環境では、必ず推測されにくい一意のパスワードを使用してください。
Linux は、暗号化されたパスワードを /etc/shadow という安全なファイルに保存します。これは、誰でも確認できる /etc/passwd ファイルにパスワードを保存するよりも安全です。
ユーザーのプロパティを変更する
Linux では、ユーザーアカウントの作成後にさまざまな設定を変更できます。ここでは例として、joker のホームディレクトリを変更します。
- 次のコマンドを実行します。
sudo usermod -d /home/wayne joker
このコマンドは、次の処理を行います。
usermodは、ユーザーアカウントの設定を変更するコマンドです。-d /home/wayneは、新しいホームディレクトリを指定します。jokerは、変更対象のユーザーです。
- 変更を確認します。
sudo grep -w 'joker' /etc/passwd
-w は単語全体を検索するために使用し、grep はファイル内の文字列を検索するために使用します。出力を見ると、joker のホームディレクトリが更新されていることを確認できます。
ユーザーのシェルを変更する
変更できる重要な設定の 1 つに、ユーザーのデフォルトシェルがあります。シェルは、ターミナルで入力したコマンドを解釈して実行するプログラムです。
デフォルトでは、ユーザー「joker」はシェルとして /bin/sh を使用しています。sh(Bourne Shell)は、ほとんどの Unix 系システムに存在する基本的なシェルです。一方、bash(Bourne Again Shell)はより多くの機能を備えており、一般的に使いやすいシェルです。
joker のシェルを bash に変更すると、次のような利点があります。
- より直感的なコマンドラインインターフェース
- より充実したスクリプト機能
- ユーザー環境をより柔軟にカスタマイズできるオプション
変更手順は次のとおりです。
- joker のデフォルトシェルを bash に変更します。
sudo usermod -s /bin/bash joker
- 変更を確認します。
sudo grep -w 'joker' /etc/passwd
joker のエントリの末尾に /bin/bash が表示されます。これは、joker のデフォルトシェルが bash になったことを示します。
この変更後、joker はログインするたび、または新しいターミナルセッションを開くたびに、より多くの機能を備えた bash 環境を使用できます。
ユーザーをグループに追加する
Linux では、グループを使ってユーザーを整理し、権限を管理します。重要なグループの 1 つが sudo グループです。このグループに所属するユーザーには、管理権限が与えられます。ここでは例として、joker を sudo グループに追加します。
ユーザーを sudo グループに追加する理由は次のとおりです。
- システム管理:
sudoグループのユーザーは、システム全体に関わる管理作業を実行できます。 - ソフトウェアのインストール:
sudoグループのメンバーは、ソフトウェアパッケージをインストールおよび更新できます。 - 設定の変更:システム設定ファイルを変更できます。
- ユーザー管理:他のユーザーアカウントを作成、変更、削除できます。
「いつでも sudo コマンドを使えるのに、なぜユーザーを sudo グループに追加するのか」と疑問に思うかもしれません。理由は次のとおりです。
- 利便性:
sudoグループのユーザーは、root のパスワードを知る必要がありません。自分自身のパスワードを使用します。 - きめ細かな制御:システム管理者は、特定のユーザーが特定のコマンドだけをスーパーユーザー権限で実行できるように
sudoを設定できます。 - 説明責任:root のパスワードを共有する場合とは異なり、
sudoは誰がどのコマンドを実行したかを記録するため、セキュリティと追跡可能性が向上します。 - セキュリティ:複数の管理者で root のパスワードを共有するよりも、名前付きアカウントに
sudo権限を与えるほうが、一般的に安全です。
実際の環境では、通常、次のようなユーザーを sudo グループに追加します。
- 定期的な保守作業が必要なシステム管理者または IT 担当者
- 業務上、特定のソフトウェアのインストールやシステム変更が必要な開発者
- 特定の作業で権限昇格が必要だが、root のパスワードは渡したくないパワーユーザー
ユーザーを sudo グループに追加すると、システムに対する大きな権限が与えられます。必要な場合に限り、慎重に実施してください。
それでは、joker を sudo グループに追加します。
- 次のコマンドを実行します。
sudo usermod -aG sudo joker
このコマンドは、次の処理を行います。
usermodは、ユーザーアカウントを変更するコマンドです。-aGは「Group に追加(append)」を意味し、他のグループから削除せずにグループへ追加します。sudoは、ユーザーを追加するグループです。jokerは、変更対象のユーザーです。
- 変更を確認します。
groups joker
joker のグループ一覧に sudo が表示されます。
- この変更の効果を確認するため、joker ユーザーに切り替え、
sudo権限が必要なコマンドを実行します。
su - joker
このコマンドは、現在のユーザー(labex)から joker ユーザーに切り替えます。joker のパスワードを入力するよう求められます。先ほど設定したパスワード(password123)を入力してください。パスワードを入力している間、画面には文字が表示されません。これはセキュリティ機能です。
- joker としてログインしたら、通常は root 権限が必要なファイルを表示してみます。
sudo cat /etc/shadow
求められたら、joker のパスワードをもう一度入力します。通常は root だけがアクセスできる /etc/shadow ファイルの内容が表示されます。これにより、joker に sudo 権限が与えられたことを確認できます。
- 終了したら、
exitと入力して元のユーザーアカウント(labex)に戻ります。
注:本番環境では、誰を sudo グループに追加するかを十分に慎重に判断してください。大きな権限には大きな責任が伴います。
ユーザーアカウントをロックおよびロック解除する
ユーザーアカウントを削除せずに、一時的に無効化する必要が生じる場合があります。
- joker アカウントをロックします。
sudo passwd -l joker
-l オプションは、パスワードをロックします。
- joker ユーザーへの切り替えを試します。
su - joker
パスワードの入力を求められます。先ほど joker に設定したパスワード(提案どおりに進めた場合は「password123」)を入力してください。
「authentication failure」というメッセージが表示されます。これは、アカウントが正常にロックされたことを示します。
- 次に、アカウントのロックを解除します。
sudo passwd -u joker
-u オプションは、パスワードのロックを解除します。
- もう一度 joker ユーザーへの切り替えを試します。
su - joker
求められたらパスワードを入力します。今度は、joker ユーザーへの切り替えに成功します。
次のステップに進む前に、exit と入力して元のユーザーアカウントに戻ってください。
ユーザーを削除する
最後に、ユーザーを削除する方法を学びます。先ほど作成した「bob」ユーザーを削除します。
- bob とそのホームディレクトリを削除します。
sudo userdel -r bob
userdel コマンドは、ユーザーアカウントを削除します。-r オプションは、ユーザーのホームディレクトリとメールスプールを削除します。
- ユーザーが削除されたことを確認します。
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
どちらのコマンドも結果を返さないはずです。これは、ユーザーとそのホームディレクトリが正常に削除されたことを示します。
まとめ
お疲れさまでした。Linux ユーザーアカウント管理の実験を完了しました。次の操作を学びました。
- 新しいユーザーアカウントの作成
- ユーザーパスワードの設定
- ホームディレクトリやデフォルトシェルなど、ユーザープロパティの変更
- ユーザーのグループへの追加
- ユーザーアカウントのロックとロック解除
- ユーザーアカウントの削除
また、/etc/passwd ファイル、ホームディレクトリ、シェル、ユーザーグループなど、Linux の重要な概念についても学びました。これらは、Linux システム管理に欠かせない基本スキルです。実際の環境でユーザーアカウントを管理するときは、必ず所属組織のセキュリティポリシーに従ってください。



