Linux カーネルを不正アクセスから保護するために、オペレーティング システムには、異なる権限を持つ異なるユーザーを作成するオプションが用意されています。 Linux ではコマンドを使用してユーザーを簡単に切り替えることができます。この記事では、管理タスクを実行するか、単にスーパー ユーザーとしてコマンドを実行する必要があるかに関係なく、Linux ターミナルから直接ユーザーを切り替える方法についていくつかの異なる方法を検討します。
Linux の 3 種類のユーザー
ユーザーの切り替えを始める前に、Linux のさまざまなタイプのユーザーを見てみましょう。 Linux ユーザーには 3 つの異なるタイプがあります。
- システム ユーザーまたは非ログイン ユーザー : これらのタイプのユーザーには、ログイン アクセスもシェル アクセスもありません。これらは通常、特定のサービスやアプリケーションを実行するために使用されます。非ログイン ユーザーについて詳しくは、Linux で非ログイン ユーザーを作成する方法に関する記事をご覧ください。
- 通常ユーザー : これらのタイプのユーザー アカウントは、ファイル権限に従ってファイル システムへのアクセスが制限されます。ただし、su または sudo コマンドを使用して管理者権限を取得することはできます。
- ルート ユーザー (スーパー ユーザー/管理者 ): これらのタイプのユーザー アカウントは、最高レベルのセキュリティ クリアランスでファイル システム全体に完全に無制限にアクセスできます。
su コマンドを使用して Linux でユーザーを切り替える方法
switch user の略である su コマンドは、あるユーザー アカウントから別のユーザー アカウントに切り替えるための強力なツールです。 Linux ターミナルで su コマンドを使用してユーザーを切り替える構文は次のとおりです。
su <options> <username>
上記の構文で、<username> を切り替え先のユーザー アカウントの名前に置き換えます。 su コマンドと組み合わせる一般的なオプションには、次のようなものがあります。
オプション
説明
-c
切り替えられたユーザーの新しいシェルにコマンドを渡すため。
-s
デフォルトの /bin/sh の代わりに別のシェルを指定するには。
-P
使用すると、セキュリティを向上させるために、元のセッションとは共有されないセッション用の新しい疑似端末が作成されます。
-l
実際のログインと同様の環境でシェルをログイン シェルとして起動します。
-g
プライマリグループを指定するために使用されます。
1. 通常ユーザーに切り替える
Linux で su コマンドを使用して通常のユーザーに切り替えるには、次の構文を使用します。
su <options> <username>
たとえば、「test」ユーザーに切り替えるには、次のコマンドを使用します。
su -l test1
ここで、切り替えたいユーザーのパスワードを入力し、Enter キーを押します。シェル プロンプトにユーザー名がないか、矢印キーを使用して移動したり、タブ キーを使用した構文の自動補完を使用したりすることさえできないことに気づくかもしれません。これはシェルが安定していないことを意味します。安定したシェルを生成するには、次のコマンドを使用します。
/bin/bash/ -i
シェル プロンプトに新しいユーザー名が表示されます。また、矢印キーで移動したり、タブ キーでオートコンプリートを使用したりすることもできます。
2. root ユーザーに切り替えます。
場合によっては、一部の管理タスクに root ユーザー アカウントの使用が必要になることがあります。 Linux で root ユーザーまたはスーパー ユーザーに切り替えるには、次のような su コマンドを使用します。
su -
root ユーザーのパスワードの入力を求められます。 root パスワードを入力して Enter キーを押します。シェル プロンプトに root ユーザー名が表示されるようになります。これで、すべてのコマンドを root ユーザーとして実行できるようになります。
sudo コマンドを使用して Linux でユーザーを切り替える方法
sudo コマンドは「Super User Do」の略です。このコマンドは通常、root またはスーパー ユーザーとしてさまざまなコマンドを実行するために使用されます。ただし、ちょっとしたトリックを使えば、sudo コマンドを使用して Linux でユーザーを切り替えることができます。その前に、sudo コマンドの構文を見てみましょう。
sudo <options> <parameters> <command>
上記の構文では、<command> は別のユーザーとして実行する必要があるコマンドと、コマンドと組み合わせる <parameters> を指定します。 sudo コマンドと組み合わせることができる一般的なオプションには、次のようなものがあります。
オプション
説明
-b
指定されたコマンドをバックグラウンドで実行するには
-u
パラメータとして渡された特定のユーザー名を使用して指定されたコマンドを実行します
-n
使用すると、非対話型シェルが返され、ユーザーにあらゆる種類の入力を求めるプロンプトが表示されなくなります。
-T
コマンドのタイムアウトを設定します。コマンドが終了する前にタイムアウトが経過した場合、コマンドは終了します。
-私
ターゲット ユーザーのパスワード データベース エントリで指定されたシェルをログイン シェルとして実行します。
1. 一般ユーザーへの変更
Linux で sudo コマンドを使用して通常の Linux ユーザーに切り替えるには、次の構文を使用します。
sudo -u <username_to_switch_to> /bin/bash
上記の構文では、
- -u フラグは、切り替え先のユーザー名を指定するために使用されます。
- /bin/bash は、このユーザーの bash シェルを生成するように指定します
たとえば、ユーザー test1 に切り替える場合は、次の sudo コマンドを使用します。
sudo -u test1 /bin/bash
上記のコマンドを実行すると、root ユーザーのパスワードの入力を求められます。 root パスワードを入力して Enter キーを押します。プロンプトには、切り替えられたユーザー名が表示されます。
2. root ユーザーに切り替えます。
sudo コマンドを使用して root ユーザーに切り替えるには:
sudo -u root /bin/bash
次に、root パスワードを入力して Enter キーを押します。シェル プロンプトが root ユーザー名に変わります。
すべてのユーザー情報は /etc/passwd ファイルに保存されます。 cat コマンドを使用してファイルの内容を表示します:
cat /etc/passwd
いいえ、切り替え先のユーザーのパスワードを知っている必要があります。 root ユーザーとしてログインしている場合は、パスワードを知らなくても切り替えることができます。






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)





