Linux ユーザーの切り替え

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

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

はじめに

Linux は複数のユーザーが同時に作業できるマルチユーザーオペレーティングシステムです。異なるユーザーアカウント間を移動する方法を理解することは、システム管理者や Linux ユーザーにとって基本的なスキルです。この実験では、su(ユーザー切り替え)コマンドを使用して Linux でのユーザー切り替えについて紹介します。

この実験では、新しいユーザーを作成する方法、ユーザー間を切り替える方法、異なるユーザーとして操作を実行する方法、および元のユーザーアカウントに戻る方法を学びます。これらのスキルは、システム管理タスク、セキュリティ対策、および Linux 環境でのユーザー権限の理解に不可欠です。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 86%です。学習者から 93% の好評価を得ています。

Linux ユーザーの理解と新しいユーザーの作成

Linux では、各ユーザーには特定の権限とホームディレクトリを持つ独自のアカウントがあります。ユーザー間を切り替える前に、2 つ目のユーザーアカウントを作成する必要があります。

新しいユーザーの作成

adduser コマンドを使用して、apprentice という名前の新しいユーザーを作成しましょう。このコマンドには管理者権限が必要なので、sudo を使用して権限を昇格させて実行します。

sudo adduser apprentice

このコマンドを実行すると、新しいユーザーのパスワードを設定するように求められ、いくつかのオプション情報を入力することも求められます。この実験では、パスワードを password123 に設定し、オプション情報のフィールドは Enter キーを押してスキップしましょう。

Adding user `apprentice' ...
Adding new group `apprentice' (1001) ...
Adding new user `apprentice' (1001) with group `apprentice' ...
Creating home directory `/home/apprentice' ...
Copying files from `/etc/skel' ...
New password: password123
Retype new password: password123
passwd: password updated successfully
Changing the user information for apprentice
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

sudo 権限の付与

次に、apprentice ユーザーに sudo 権限を付与して、管理者タスクを実行できるようにしましょう。

sudo usermod -aG sudo apprentice

このコマンドは、apprentice ユーザーを sudo グループに追加します。コマンドが正常に実行されると、何も出力されません。

ユーザーの存在確認

新しいユーザーが正常に作成されたことを確認するために、/home ディレクトリの内容を一覧表示できます。

ls -l /home

apprentice ユーザーのディレクトリが表示されるはずです。

total 8
drwxr-xr-x 5 apprentice apprentice 4096 Oct 15 12:34 apprentice
drwxr-xr-x 5 labex      labex      4096 Oct 15 12:00 labex

また、/etc/passwd ファイルを表示することで、システム内のユーザーの一覧を確認することもできます。

grep apprentice /etc/passwd

これにより、apprentice ユーザーに関する情報が表示されるはずです。

apprentice:x:1001:1001:,,,:/home/apprentice:/bin/bash

su コマンドでのユーザー切り替え

これで apprentice ユーザーを作成したので、su コマンドを使ってこのユーザーに切り替える方法を学びましょう。

su コマンドの理解

su(ユーザー切り替え)コマンドを使うと、ログインセッション中に別のユーザーアカウントに切り替えることができます。su コマンドの一般的な使い方は 2 つあります。

  1. su username - 指定したユーザーに切り替えますが、現在の環境変数は保持します。
  2. su - username - 指定したユーザーに切り替え、そのユーザーの環境も読み込みます。

ハイフン (-) を付けた 2 番目のオプションを使うのが一般的に推奨されます。これにより完全な環境切り替えが行われ、実際にそのユーザーとしてログインしているような感覚になります。

apprentice ユーザーに切り替える

完全な環境切り替えを伴って apprentice ユーザーに切り替えましょう。

su - apprentice

apprentice ユーザーのパスワードを求められます。ユーザー作成時に設定したパスワード (password123) を入力します。

Password: password123

認証に成功すると、コマンドプロンプトが変わり、現在 apprentice ユーザーとしてログインしていることがわかります。プロンプトは次のようになるかもしれません。

apprentice@ubuntu:~$

ユーザー切り替えの確認

現在 apprentice ユーザーとして操作していることを確認するには、whoami コマンドを実行します。

whoami

出力は次のようになるはずです。

apprentice

また、pwd コマンドで現在の作業ディレクトリを確認することもできます。

pwd

出力は、現在 apprentice ユーザーのホームディレクトリにいることを示すはずです。

/home/apprentice

apprentice ユーザーとしてのファイル作成

これで apprentice ユーザーとしてログインしたので、いくつかのファイルを作成して、このセッションで行われるアクションが apprentice ユーザーの権限で実行されることを示しましょう。

ディレクトリの作成

まず、apprentice ユーザーのホームディレクトリにプロジェクトディレクトリを作成しましょう。

mkdir -p ~/project

-p フラグは、ディレクトリが既に存在する場合にコマンドがエラーを出さないようにします。コマンドが正常に実行されると、何も出力されません。

テキストファイルの作成

次に、プロジェクトディレクトリにテキストファイルを作成しましょう。

echo "This is my first file as the apprentice user." > ~/project/apprentice-journal.txt

このコマンドを実行するときには何も出力されませんが、指定された内容のファイルが作成されます。

ファイル内容の表示

先ほど作成したファイルの内容を確認しましょう。

cat ~/project/apprentice-journal.txt

出力は次のようになるはずです。

This is my first file as the apprentice user.

ファイルの所有者確認

ファイルが apprentice ユーザーによって所有されていることも確認できます。

ls -l ~/project/apprentice-journal.txt

出力は次のようになるはずです。

-rw-rw-r-- 1 apprentice apprentice 44 Oct 15 13:45 /home/apprentice/project/apprentice-journal.txt

ファイルのユーザー所有者とグループ所有者がどちらも apprentice に設定されていることに注意してください。これにより、ファイルが apprentice ユーザーの権限で作成されたことが確認できます。

元のユーザーに切り替える

apprentice ユーザーとしてのタスクを完了したら、元のユーザーアカウントに切り替える時です。一時的に別のユーザーとしてアクションを実行し、その後にメインのアカウントに戻る場合、これは一般的な操作です。

apprentice ユーザーセッションを終了する

元のユーザーセッションに戻るには、単に exit と入力するか、Ctrl+D を押します。

exit

コマンドプロンプトが元のユーザーのプロンプトに戻っているのが見えるはずです。これは次のようになるかもしれません。

labex@ubuntu:~/project$

ユーザー切り替えの確認

元のユーザーアカウントに正常に切り替えたことを確認するには、whoami コマンドを実行します。

whoami

出力は次のようになるはずです。

labex

他のユーザーが作成したファイルへのアクセス

元のユーザーに切り替えたとしても、適切な権限があれば、apprentice ユーザーが作成したファイルにアクセスすることができます。

cat /home/apprentice/project/apprentice-journal.txt

出力にはファイルの内容が表示されるはずです。

This is my first file as the apprentice user.

ユーザーコンテキストの比較

これでユーザー間の切り替えを体験したので、ホームディレクトリのパスを確認することで、ユーザーコンテキストの違いを示しましょう。

echo "My home directory is: $HOME"

出力には元のユーザーのホームディレクトリが表示されるはずです。

My home directory is: /home/labex

もし apprentice ユーザーに切り替えて同じコマンドを実行すると、出力は異なります。

su - apprentice                    ## (今はこれを実行しないでください、説明用です)
echo "My home directory is: $HOME" ## 表示される内容: My home directory is: /home/apprentice

これは、- オプション付きの su コマンドが、$HOME のような環境変数を含むユーザー環境を完全に切り替えることを示しています。

まとめ

この実験では、重要な Linux ユーザー管理スキルを学びました。

  1. adduser コマンドを使用して新しいユーザーアカウントを作成する
  2. usermod コマンドを使用してユーザーに sudo 権限を付与する
  3. su コマンドを使用してユーザー間を切り替える
  4. 別のユーザーとしてファイルを作成する
  5. whoami などのコマンドでユーザーコンテキストを確認し、環境変数をチェックする
  6. exit コマンドを使用して元のユーザーに切り替える

これらのスキルは、Linux システム管理やマルチユーザー環境での日常の操作において基本的なものです。ユーザーの切り替えにより、管理者は異なる権限レベルでタスクを実行でき、root アカウントの常時使用を避けることで適切なセキュリティ対策を維持できます。

Linux のユーザー管理を理解することで、以下のことができます。

  • 適切なユーザー権限を使用してシステムのセキュリティを維持する
  • 権限関連の問題をトラブルシューティングする
  • 異なるユーザーの視点からアプリケーションや設定をテストする
  • マルチユーザーシステムを効果的に管理する

Linux の学習を続けるにつれて、これらのスキルはより高度なシステム管理タスクの基礎となります。