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