Categories: linux

Linuxのsuコマンドを徹底解説!ユーザー切り替えから基本の使い方までわかりやすく解説

Linuxのシステムを操作していると、他のユーザーに切り替えて作業したい場面がよくあります。そんなときに活躍するのが「su」コマンドです。特に管理者権限が必要な操作や、特定のユーザーの環境を確認したいときには欠かせない存在です。本記事では、suコマンドの基本的な使い方から、オプションの活用方法、sudoとの違いまで、わかりやすく丁寧に解説します。Linuxを使いこなすために、ぜひ知っておきたい知識をまとめました。


suコマンドとは?その基本的な役割

suは「substitute user(サブスティテュートユーザー)」の略で、LinuxやUnix系OSでユーザーを切り替えるために使われるコマンドです。

特に何も指定しなければ、suはスーパーユーザー(root)への切り替えを意味します。rootユーザーに切り替えると、システム全体に関する操作が可能になるため、非常に強力なコマンドです。

su

このように実行すると、rootのパスワードを求められ、正しく入力すればroot権限に切り替わります。


他のユーザーに切り替える方法

suコマンドでは、任意のユーザーに切り替えることも可能です。

su - ユーザー名

たとえば、johnというユーザーに切り替えたい場合は以下のようにします。

su - john

このコマンドを実行すると、johnユーザーのパスワードを求められ、認証が成功すればそのユーザーに切り替わります。

-(ハイフン)をつけることで、そのユーザーの環境変数やシェル設定を引き継いでログインできます。これはログインシェルの環境を再現するために重要です。


suコマンドの主なオプション

suには便利なオプションがあります。いくつか代表的なものを紹介します。

-(ハイフン)

前述したとおり、-を付けることでログインシェルを再現します。

su - john

これは--loginと同じ意味です。

-cオプション

特定のコマンドを実行するためだけにユーザーを切り替えたい場合は、-cオプションが便利です。

su -c 'ls /root' root

このように書くと、rootユーザーでls /rootコマンドを実行し、すぐに元のユーザーに戻ります。


suコマンドとsudoコマンドの違い

Linuxにはsuとよく似たsudoコマンドもあります。両者の違いを理解しておくと、より適切に使い分けができます。

コマンド特徴認証方式
suユーザーそのものに切り替える対象ユーザーのパスワードが必要
sudo指定のコマンドだけ一時的に別ユーザーとして実行自分のパスワードでOK(sudoersに登録されている必要あり)

たとえば、apt updateを実行したいだけなら、sudo apt updateとすればOK。rootになっていろんなことをしたいときはsu -で切り替えたほうが便利です。


suコマンドを使う際の注意点

suを使うときは以下の点に注意しましょう。

  • パスワードが必要
    対象のユーザーのパスワードを知らなければ切り替えはできません。
  • root権限の濫用に注意
    rootでの操作は非常に強力である反面、誤操作でシステムを壊すリスクがあります。
  • ログイン履歴が残る
    suの使用履歴は/var/log/secure/var/log/auth.logに残ります。

suを終了して元のユーザーに戻るには?

suで他のユーザーに切り替えた後は、exitコマンドやCtrl + Dで元のユーザーに戻ることができます。

exit

このコマンドを入力すると、ひとつ前のシェルに戻ります。


suコマンドが使えないときの対処法

場合によっては、suが無効になっていたり、rootアカウントのログインが制限されていることがあります。そのような場合は、以下を確認してみましょう。

  • /etc/securetty でrootログインが制限されていないか
  • PAM(Pluggable Authentication Modules)の設定を確認
  • rootアカウントが無効化されていないか(特にUbuntu系では無効になっている)

また、rootのパスワードを設定していない場合は、以下のようにして設定します。

sudo passwd root

suコマンドを使いこなしてLinux操作を効率化しよう

suコマンドは、Linuxでユーザーを切り替えるための基本かつ重要なツールです。単にrootになるだけでなく、他のユーザー環境に切り替えることで、さまざまな操作を安全かつ柔軟に行うことができます。

Linuxのコマンドに慣れてくると、suの使いどころがどんどん見えてきます。環境変数の調査、設定ファイルのテスト、ユーザー切り替えによる動作確認など、さまざまな場面で活用してみてください。


まとめ

  • suはユーザーを切り替えるためのコマンド
  • su -でログインシェル環境を再現
  • su -cで一時的にコマンド実行
  • sudoとの違いも理解して適切に使い分ける
  • セキュリティ面にも十分注意しよう

suコマンドをマスターすれば、Linux操作の幅がぐっと広がります。この記事を参考に、ぜひ活用してみてください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。