ユーザーアカウント管理

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

はじめに

この実験では、Linux システムにおける基本的なユーザーアカウント管理の操作を学びます。ユーザーアカウントの作成、変更、削除に加えて、パスワードの設定と変更も行います。これらは、Linux システム管理に欠かせない基本スキルです。Linux が初めてでも心配ありません。すべての手順を順番に説明します。

新しいユーザーの作成

まず、「joker」という名前の新しいユーザーアカウントを作成します。

  1. ターミナルを開きます。Linux のターミナルは、コマンドを入力するためのテキストインターフェースです。
  2. 次のコマンドを入力して、Enter キーを押します。
sudo useradd joker

コマンドの各部分は次の意味です。

  • sudo は、一時的にスーパーユーザー(管理者)の権限を取得するコマンドです。新しいユーザーの作成には、通常より高い権限が必要なため使用します。
  • useradd は、新しいユーザーを作成するコマンドです。
  • joker は、作成するユーザー名です。

注:sudo を付けずにこのコマンドを実行すると、「permission denied」エラーが表示されます。一般ユーザーには新しいユーザーアカウントを作成する権限がなく、この操作はシステム管理者だけが実行できるためです。

ここでは、スーパーユーザーと一般ユーザーの違いを確認できます。一般ユーザーは新しいユーザーアカウントを作成できませんが、sudo を使用すると、一時的に権限を昇格して管理操作を実行できます。

  1. ユーザーが作成されたことを確認するため、/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」という名前の別のユーザーを作成し、そのユーザー用のホームディレクトリも作成します。

  1. 次のコマンドを実行します。
sudo useradd -m bob

-m オプションを指定すると、ユーザーのホームディレクトリが作成されます。ホームディレクトリは、ユーザーがファイルや設定を保存する個人用フォルダーです。

  1. ホームディレクトリが作成されたことを確認します。
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」のパスワードを設定します。

  1. 次のコマンドを実行します。
sudo passwd joker
  1. 新しいパスワードを 2 回入力するよう求められます。この実験では、「password123」のような簡単なパスワードを使用します。

重要: パスワードを入力しても、画面には表示されません。これは、入力中のパスワードを他の人に見られないようにする Linux のセキュリティ機能です。入力を間違えた場合は、もう一度入力できます。 重要: このパスワードを忘れないでください。実験の後の手順で使用します。

  1. 成功すると、「passwd: password updated successfully」というメッセージが表示されます。

注:実際の環境では、必ず推測されにくい一意のパスワードを使用してください。

Linux は、暗号化されたパスワードを /etc/shadow という安全なファイルに保存します。これは、誰でも確認できる /etc/passwd ファイルにパスワードを保存するよりも安全です。

ユーザーのプロパティを変更する

Linux では、ユーザーアカウントの作成後にさまざまな設定を変更できます。ここでは例として、joker のホームディレクトリを変更します。

  1. 次のコマンドを実行します。
sudo usermod -d /home/wayne joker

このコマンドは、次の処理を行います。

  • usermod は、ユーザーアカウントの設定を変更するコマンドです。
  • -d /home/wayne は、新しいホームディレクトリを指定します。
  • joker は、変更対象のユーザーです。
  1. 変更を確認します。
sudo grep -w 'joker' /etc/passwd

-w は単語全体を検索するために使用し、grep はファイル内の文字列を検索するために使用します。出力を見ると、joker のホームディレクトリが更新されていることを確認できます。

ユーザーのシェルを変更する

変更できる重要な設定の 1 つに、ユーザーのデフォルトシェルがあります。シェルは、ターミナルで入力したコマンドを解釈して実行するプログラムです。

デフォルトでは、ユーザー「joker」はシェルとして /bin/sh を使用しています。sh(Bourne Shell)は、ほとんどの Unix 系システムに存在する基本的なシェルです。一方、bash(Bourne Again Shell)はより多くの機能を備えており、一般的に使いやすいシェルです。

joker のシェルを bash に変更すると、次のような利点があります。

  • より直感的なコマンドラインインターフェース
  • より充実したスクリプト機能
  • ユーザー環境をより柔軟にカスタマイズできるオプション

変更手順は次のとおりです。

  1. joker のデフォルトシェルを bash に変更します。
sudo usermod -s /bin/bash joker
  1. 変更を確認します。
sudo grep -w 'joker' /etc/passwd

joker のエントリの末尾に /bin/bash が表示されます。これは、joker のデフォルトシェルが bash になったことを示します。

この変更後、joker はログインするたび、または新しいターミナルセッションを開くたびに、より多くの機能を備えた bash 環境を使用できます。

ユーザーをグループに追加する

Linux では、グループを使ってユーザーを整理し、権限を管理します。重要なグループの 1 つが sudo グループです。このグループに所属するユーザーには、管理権限が与えられます。ここでは例として、joker を sudo グループに追加します。

ユーザーを sudo グループに追加する理由は次のとおりです。

  1. システム管理:sudo グループのユーザーは、システム全体に関わる管理作業を実行できます。
  2. ソフトウェアのインストール:sudo グループのメンバーは、ソフトウェアパッケージをインストールおよび更新できます。
  3. 設定の変更:システム設定ファイルを変更できます。
  4. ユーザー管理:他のユーザーアカウントを作成、変更、削除できます。

「いつでも sudo コマンドを使えるのに、なぜユーザーを sudo グループに追加するのか」と疑問に思うかもしれません。理由は次のとおりです。

  • 利便性:sudo グループのユーザーは、root のパスワードを知る必要がありません。自分自身のパスワードを使用します。
  • きめ細かな制御:システム管理者は、特定のユーザーが特定のコマンドだけをスーパーユーザー権限で実行できるように sudo を設定できます。
  • 説明責任:root のパスワードを共有する場合とは異なり、sudo は誰がどのコマンドを実行したかを記録するため、セキュリティと追跡可能性が向上します。
  • セキュリティ:複数の管理者で root のパスワードを共有するよりも、名前付きアカウントに sudo 権限を与えるほうが、一般的に安全です。

実際の環境では、通常、次のようなユーザーを sudo グループに追加します。

  • 定期的な保守作業が必要なシステム管理者または IT 担当者
  • 業務上、特定のソフトウェアのインストールやシステム変更が必要な開発者
  • 特定の作業で権限昇格が必要だが、root のパスワードは渡したくないパワーユーザー

ユーザーを sudo グループに追加すると、システムに対する大きな権限が与えられます。必要な場合に限り、慎重に実施してください。

それでは、joker を sudo グループに追加します。

  1. 次のコマンドを実行します。
sudo usermod -aG sudo joker

このコマンドは、次の処理を行います。

  • usermod は、ユーザーアカウントを変更するコマンドです。
  • -aG は「Group に追加(append)」を意味し、他のグループから削除せずにグループへ追加します。
  • sudo は、ユーザーを追加するグループです。
  • joker は、変更対象のユーザーです。
  1. 変更を確認します。
groups joker

joker のグループ一覧に sudo が表示されます。

  1. この変更の効果を確認するため、joker ユーザーに切り替え、sudo 権限が必要なコマンドを実行します。
su - joker

このコマンドは、現在のユーザー(labex)から joker ユーザーに切り替えます。joker のパスワードを入力するよう求められます。先ほど設定したパスワード(password123)を入力してください。パスワードを入力している間、画面には文字が表示されません。これはセキュリティ機能です。

  1. joker としてログインしたら、通常は root 権限が必要なファイルを表示してみます。
sudo cat /etc/shadow

求められたら、joker のパスワードをもう一度入力します。通常は root だけがアクセスできる /etc/shadow ファイルの内容が表示されます。これにより、joker に sudo 権限が与えられたことを確認できます。

  1. 終了したら、exit と入力して元のユーザーアカウント(labex)に戻ります。

注:本番環境では、誰を sudo グループに追加するかを十分に慎重に判断してください。大きな権限には大きな責任が伴います。

ユーザーアカウントをロックおよびロック解除する

ユーザーアカウントを削除せずに、一時的に無効化する必要が生じる場合があります。

  1. joker アカウントをロックします。
sudo passwd -l joker

-l オプションは、パスワードをロックします。

  1. joker ユーザーへの切り替えを試します。
su - joker

パスワードの入力を求められます。先ほど joker に設定したパスワード(提案どおりに進めた場合は「password123」)を入力してください。

「authentication failure」というメッセージが表示されます。これは、アカウントが正常にロックされたことを示します。

  1. 次に、アカウントのロックを解除します。
sudo passwd -u joker

-u オプションは、パスワードのロックを解除します。

  1. もう一度 joker ユーザーへの切り替えを試します。
su - joker

求められたらパスワードを入力します。今度は、joker ユーザーへの切り替えに成功します。

次のステップに進む前に、exit と入力して元のユーザーアカウントに戻ってください。

ユーザーを削除する

最後に、ユーザーを削除する方法を学びます。先ほど作成した「bob」ユーザーを削除します。

  1. bob とそのホームディレクトリを削除します。
sudo userdel -r bob

userdel コマンドは、ユーザーアカウントを削除します。-r オプションは、ユーザーのホームディレクトリとメールスプールを削除します。

  1. ユーザーが削除されたことを確認します。
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob

どちらのコマンドも結果を返さないはずです。これは、ユーザーとそのホームディレクトリが正常に削除されたことを示します。

まとめ

お疲れさまでした。Linux ユーザーアカウント管理の実験を完了しました。次の操作を学びました。

  1. 新しいユーザーアカウントの作成
  2. ユーザーパスワードの設定
  3. ホームディレクトリやデフォルトシェルなど、ユーザープロパティの変更
  4. ユーザーのグループへの追加
  5. ユーザーアカウントのロックとロック解除
  6. ユーザーアカウントの削除

また、/etc/passwd ファイル、ホームディレクトリ、シェル、ユーザーグループなど、Linux の重要な概念についても学びました。これらは、Linux システム管理に欠かせない基本スキルです。実際の環境でユーザーアカウントを管理するときは、必ず所属組織のセキュリティポリシーに従ってください。