【su】Linuxでユーザーを切り替えるコマンド

Linuxのsuコマンドを使うと、一時的にスーパーユーザーや他のユーザーに切り替えることができます。

suコマンドの使い方

suコマンドの書式は以下の通りです。

$ su [オプション] [ユーザー名]

主なオプション

- 環境変数を引き継がずにユーザーを切り替える
-m 環境変数「USER」と「LOGNAME」を切り替え後のユーザーに引き継ぐ
-c ユーザーを切り替えた後で、「-c」の後に記入されたコマンドを実行する

スーパーユーザーに切り替える

suコマンドを実行すると、ログイン中のユーザーをスーパーユーザー(root)に切り替えることができます。

$ su

コマンドを実行するとrootのパスワードを聞かれるので入力します。その後はスーパーユーザーとして作業を行うことができます。

元のユーザーに戻す場合は「exit」コマンドを実行します。

指定したユーザーに切り替える

以下のようにユーザー名を付けてsuコマンドを実行すると、ログイン中のユーザーを指定したユーザーに切り替えることができます。

$ su hoge

上の場合、ユーザー「hoge」のパスワードの入力が求められます。その後はユーザー「hoge」として作業を行うことができます。

環境変数を引き継がずに他のユーザーに切り替える

ハイフン「-」を付けると、環境変数を引き継がずに他のユーザーに切り替えることができます。「-」を付けない場合は、「USER」と「LOGNAME」以外のすべての環境変数が、切り替え後のユーザーにも引き継がれます。

$ su -

上の場合、スーパーユーザーでログインし直したのと同じ状態になるため、環境変数は引き継がれません。

環境変数を引き継がずに指定ユーザーに切り替える

ハイフン「-」の後にユーザー名を入力することで、環境変数を引き継がずに指定ユーザーに切り替えられます。

$ su - hoge

上の場合、「hoge」というユーザーでログインし直したのと同じ状態になるため、環境変数は引き継がれません。


イベント