はじめに
この実験では、Linux システムにおける基本的なユーザーアカウント管理操作を案内します。ユーザーアカウントの作成、変更、削除方法や、パスワードの設定と変更方法を学びます。これらは Linux システム管理の基本的なスキルです。Linux 初心者でも心配しないでください。すべてを段階的に説明します!
この実験では、Linux システムにおける基本的なユーザーアカウント管理操作を案内します。ユーザーアカウントの作成、変更、削除方法や、パスワードの設定と変更方法を学びます。これらは Linux システム管理の基本的なスキルです。Linux 初心者でも心配しないでください。すべてを段階的に説明します!
まずは、「joker」という名前の新しいユーザーアカウントを作成しましょう。
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
この行は次の情報を示しています。
/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---
は、誰がこのディレクトリを読み取り、書き込み、または実行できるかを示しています。bob
エントリは、このディレクトリのユーザー所有者とグループ所有者がどちらも bob であることを示しています。57
は、ディレクトリのサイズ(バイト)です。Jan 19 13:33
は、ディレクトリが作成された日時です。/home/bob
は、ディレクトリの場所です。次に、新しいユーザーにパスワードを設定する必要があります。「joker」にパスワードを設定しましょう。
sudo passwd joker
入力中、パスワードは表示されません。これは、入力中に他人がパスワードを見るのを防ぐためのセキュリティ機能です。
重要:このパスワードを覚えておいてください!実験の後半で必要になります。
注意:実際のシナリオでは、常に強力で一意のパスワードを使用してください!
裏では、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」のホームディレクトリが更新されていることが確認できるはずです。
変更できるもう一つの重要な設定は、ユーザーのデフォルトシェルです。シェルは、ターミナルに入力したコマンドを解釈して実行するプログラムです。
デフォルトでは、ユーザー「joker」は /bin/sh
をシェルとして使用しています。sh
(Bourne Shell)はほとんどの Unix 系システムに搭載されている基本的なシェルですが、bash
(Bourne Again Shell)はより多くの機能を提供し、一般的に使いやすいです。
「joker」のシェルを bash
に変更することにはいくつかの利点があります。
以下は変更方法です。
bash
に変更します。sudo usermod -s /bin/bash joker
sudo grep -w 'joker' /etc/passwd
「joker」のエントリの最後に /bin/bash
が表示されるはずです。これは、bash
が「joker」の新しいデフォルトシェルになったことを意味します。
この変更を行った後、「joker」はログインするか新しいターミナルセッションを開くたびに、より機能豊富な bash
環境を利用できるようになります。
Linux では、グループを使ってユーザーを組織し、権限を管理します。重要なグループの一つに sudo
グループがあり、このグループに所属するユーザーには管理者権限が与えられます。ここでは、「joker」を sudo
グループに追加する例を見てみましょう。
なぜユーザーを sudo
グループに追加するのでしょうか?
sudo
グループのユーザーは、システム全体の管理タスクを実行できます。sudo
グループのメンバーは、ソフトウェアパッケージをインストールしたり更新したりできます。あなたは疑問に思うかもしれません。「いつでも sudo
コマンドを使えるのに、なぜ誰かを sudo
グループに追加するのですか?」理由は以下の通りです。
sudo
グループのユーザーは、root パスワードを知らなくても sudo
を使用できます。代わりに自分自身のパスワードを使用します。sudo
を設定できます。sudo
は誰がどのコマンドを実行したかを記録するため、セキュリティと追跡性が向上します。sudo
アクセスを持つ名前付きアカウントを持つ方が一般的に安全です。実際のシナリオでは、通常、次のような場合にユーザーを sudo
グループに追加します。
ユーザーを sudo
グループに追加すると、システムに対する大きな権限が与えられることを忘れないでください。したがって、これは慎重に、必要な場合にのみ行うべきです。
では、「joker」を sudo
グループに追加しましょう。
sudo usermod -aG sudo joker
このコマンドの動作は以下の通りです。
usermod
はユーザーアカウントを変更するためのコマンドです。-aG
は「グループに追加する」(他のグループから削除することなくグループに追加する)ことを意味します。sudo
はユーザーを追加するグループです。joker
は変更対象のユーザーです。groups joker
出力結果に sudo
が「joker」の所属グループとして表示されるはずです。
sudo
権限が必要なコマンドを試してみましょう。su - joker
このコマンドは、現在のユーザー(labex)から「joker」ユーザーに切り替えます。「joker」のパスワードを入力するように求められます。これは、前に設定したパスワード(password123
)です。パスワードを入力するとき、画面に文字は表示されません。これはセキュリティ機能です。
sudo cat /etc/shadow
求められたら、再度「joker」のパスワードを入力します。通常は root のみがアクセスできる /etc/shadow
ファイルの内容を表示できるはずです。これにより、「joker」が sudo
権限を持っていることが確認できます。
exit
と入力して元のユーザーアカウント(labex)に戻ります。注意:本番環境では、誰を sudo
グループに追加するかについて非常に慎重にする必要があります。大きな権限には大きな責任が伴います!
時には、ユーザーアカウントを削除せずに一時的に無効化する必要がある場合があります。
sudo passwd -l joker
-l
オプションはパスワードをロックします。
su - joker
パスワードを入力するよう求められます。前に「joker」に設定したパスワード(提案通りに進めた場合は「password123」)を入力します。
「authentication failure」というメッセージが表示されるはずです。これはアカウントが正常にロックされたことを意味します。
sudo passwd -u joker
-u
オプションはパスワードのロックを解除します。
su - joker
求められたらパスワードを入力します。今度は、正常に「joker」ユーザーに切り替えることができるはずです。
次のステップに進む前に、exit
と入力して元のユーザーアカウントに戻ってください。
最後に、ユーザーを削除する方法を学んでみましょう。ここでは、先ほど作成した「bob」ユーザーを削除します。
sudo userdel -r bob
userdel
コマンドはユーザーアカウントを削除します。-r
オプションはユーザーのホームディレクトリとメールスプールを削除します。
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob
両方のコマンドは何も結果を返さないはずです。これは、ユーザーとそのホームディレクトリが正常に削除されたことを意味します。
おめでとうございます!Linux ユーザーアカウント管理の実験を完了しました。以下のことを学びました。
また、/etc/passwd
ファイル、ホームディレクトリ、シェル、ユーザーグループなどの重要な Linux の概念にも触れました。これらは Linux システム管理の基本的なスキルです。実際のシナリオでは、ユーザーアカウントを管理する際に常に組織のセキュリティポリシーに従ってください。