ホーム > パッケージ・システム管理 > su

su: 他のユーザーに切り替える

`su`コマンドは「substitute user」の略で、現在のユーザーIDを他のユーザーのIDに切り替える際に使用されます。主に管理者権限(root)を取得したり、他のユーザーの環境で作業を実行したりする際に活用されます。パスワード認証によって権限を取得し、セキュリティ上重要なコマンドです。

概要

`su`は、現在のセッションで他のユーザーの権限でコマンドを実行したり、そのユーザーのシェル環境に切り替えたりするために使用されます。デフォルトでは、対象ユーザーを指定しない場合、rootユーザーへの切り替えを試みます。

主な特徴

  • ユーザーIDの切り替え: 現在のユーザーの権限を他のユーザーの権限に変更します。
  • デフォルトの対象: ユーザー名を指定しない場合、デフォルトでrootユーザーへの切り替えを試みます。
  • パスワード認証: 対象ユーザーのパスワードを正確に入力しないと権限の切り替えができません。
  • 環境の切り替え: `-` または `-l` オプションを使用して、対象ユーザーのログインシェル環境に完全に切り替えることができます。

主なオプション

`su`コマンドは、さまざまなオプションを使用してユーザー切り替えの方法や実行するコマンドを制御できます。

ユーザー切り替えオプション

コマンド実行オプション

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`su` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

`su`コマンドのさまざまな使い方を通じて、ユーザー切り替えや特定のコマンド実行方法を学ぶことができます。

rootユーザーに切り替え(ログインシェルではない)

su

デフォルトでrootユーザーに切り替えますが、rootのログインシェル環境はロードしません。現在のユーザーの環境変数が一部維持される可能性があります。

rootユーザーでログインシェルに切り替え

su -

rootユーザーに切り替え、rootのログインシェル環境(PATH、ホームディレクトリなど)を完全にロードします。最も一般的で推奨される方法です。

特定のユーザーでログインシェルに切り替え

su -l username

指定された'username'ユーザーに切り替え、そのユーザーのログインシェル環境をロードします。

root権限で特定のコマンドを実行して戻る

su -c "ls -la /root"

root権限で`ls -la /root`コマンドを実行した後、自動的に元のユーザーに戻ります。シェル環境は変更されません。

他のユーザーで特定のコマンドを実行して戻る

su username -c "whoami"

'username'ユーザーの権限で`whoami`コマンドを実行した後、元のユーザーに戻ります。

ヒントと注意点

`su`コマンドはシステムのセキュリティに直接影響するため、使用する際にはいくつかの重要な点に注意する必要があります。

セキュリティと推奨事項

  • rootパスワード漏洩のリスク: `su`はrootパスワードを直接要求するため、このパスワードが漏洩した場合、システム全体が危険にさらされる可能性があります。`sudo`はユーザー自身のパスワードを使用し、特定のコマンドに対する権限のみを付与できるため、より詳細な制御が可能です。一般的に`sudo`の使用がより推奨されます。
  • ログインシェル使用の推奨: `su -`(ハイフン付き)を使用して対象ユーザーのログインシェル環境を完全にロードすることをお勧めします。これにより、PATHや環境変数などが正しく設定され、予期しない問題を回避し、対象ユーザーの環境で作業するのと同じ効果が得られます。
  • 不要なroot使用の自粛: 必要な作業が終了したら、すぐに`exit`コマンドで元のユーザーに戻ることがセキュリティ上安全です。root権限で長時間作業することは、システムに危険をもたらす可能性があります。
  • ログの確認: `su`の使用履歴はシステムログ(例: `/var/log/auth.log`または`/var/log/secure`)に残ります。セキュリティ監査のために、これらのログを定期的に確認することが推奨されます。


同じカテゴリのコマンド