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操作の幅がぐっと広がります。この記事を参考に、ぜひ活用してみてください!
