ユーザーアカウント管理

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、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」のような簡単なパスワードを使用します。

入力中、パスワードは表示されません。これは、入力中に他人がパスワードを見るのを防ぐためのセキュリティ機能です。

重要:このパスワードを覚えておいてください!実験の後半で必要になります。

  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」のホームディレクトリが更新されていることが確認できるはずです。

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

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

デフォルトでは、ユーザー「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 が表示されるはずです。これは、bash が「joker」の新しいデフォルトシェルになったことを意味します。

この変更を行った後、「joker」はログインするか新しいターミナルセッションを開くたびに、より機能豊富な bash 環境を利用できるようになります。

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

Linux では、グループを使ってユーザーを組織し、権限を管理します。重要なグループの一つに sudo グループがあり、このグループに所属するユーザーには管理者権限が与えられます。ここでは、「joker」を sudo グループに追加する例を見てみましょう。

なぜユーザーを sudo グループに追加するのでしょうか?

  1. システム管理:sudo グループのユーザーは、システム全体の管理タスクを実行できます。
  2. ソフトウェアのインストール:sudo グループのメンバーは、ソフトウェアパッケージをインストールしたり更新したりできます。
  3. 設定の変更:彼らはシステムの設定ファイルを変更できます。
  4. ユーザー管理:彼らは他のユーザーアカウントを作成、変更、または削除できます。

あなたは疑問に思うかもしれません。「いつでも sudo コマンドを使えるのに、なぜ誰かを sudo グループに追加するのですか?」理由は以下の通りです。

  • 利便性:sudo グループのユーザーは、root パスワードを知らなくても sudo を使用できます。代わりに自分自身のパスワードを使用します。
  • 細かい制御:システム管理者は、特定のユーザーにのみ特定のコマンドをスーパーユーザー権限で実行させるように sudo を設定できます。
  • 責任追跡性:root パスワードを共有するのとは異なり、sudo は誰がどのコマンドを実行したかを記録するため、セキュリティと追跡性が向上します。
  • セキュリティ:複数の管理者間で root パスワードを共有するよりも、sudo アクセスを持つ名前付きアカウントを持つ方が一般的に安全です。

実際のシナリオでは、通常、次のような場合にユーザーを sudo グループに追加します。

  • 定期的なメンテナンスタスクを実行する必要があるシステム管理者または IT スタッフのメンバーである場合。
  • 特定のソフトウェアをインストールしたり、仕事のためにシステムを変更する必要がある開発者である場合。
  • 特定のタスクに対して昇格した権限が必要だが、root パスワードを与えたくない上級ユーザーである場合。

ユーザーを sudo グループに追加すると、システムに対する大きな権限が与えられることを忘れないでください。したがって、これは慎重に、必要な場合にのみ行うべきです。

では、「joker」を sudo グループに追加しましょう。

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

このコマンドの動作は以下の通りです。

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

出力結果に sudo が「joker」の所属グループとして表示されるはずです。

  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 システム管理の基本的なスキルです。実際のシナリオでは、ユーザーアカウントを管理する際に常に組織のセキュリティポリシーに従ってください。