LinuxではOSを使用するユーザーを切り替えるために便利な「su」コマンドがあります。
ここでは「su」コマンドについて以下の内容で解説していきます。
この記事では「su」コマンドについてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!
suコマンドとは
「su」コマンドは使用するユーザーを切り替えるときに使用します。
LinuxではOSを使用するユーザーによって権限を割当てることができます。
たとえばユーザーAでは特定のファイルは閲覧のみの権限しか与えられていないが、ユーザーBでは特定のファイルの変更を可能な場合、ユーザーAからユーザーBに切り替えたい場合に「su」コマンドを使用します。
・suコマンドの書式
$ su
suコマンドのオプション
以下は「su」コマンドで使用する主なオプションです。
オプション | 説明 |
---|---|
- | 環境変数を引き継がずに変更する |
-m | 環境変数「HOME」「USER」などの内容を引き継ぐ |
-s | 実行するシェルを指定する |
suコマンドの使い方
「su」コマンドに引数を指定しないで実行すると、スーパーユーザー(root権限)に切り替えることができます。
スーパーユーザー(root権限)とは、Linuxにおける管理者権限のことで、ファイルシステムのパーミッションの変更や他ユーザーの権限を変更できるなど、Linuxにおけるすべての操作が可能となります。
スーパーユーザーに切り替えるには引数なしで以下のように入力します。
$ su
「su」コマンドを実行するとroot権限に切り替えるためにパスワードを入力する必要があります。
先述したとおりroot権限はLinux上であらゆることができてしまいます。
たとえば、カレントディレクトリで「rm -rf *」コマンドを実行してしまうとすべてのディレクトリが削除されてしまい、OSに致命的なダメージを与えてしまいますので周囲しましょう。
また、パスワードも第三者に漏れないように管理は徹底することが大切です。
ユーザーを切り替える
指定したユーザーに切り替えるには、以下のように「su」コマンドの引数にユーザー名を指定します。
$ su samurai
実行結果:
コマンドを実行すると、ユーザー名(ここではsamurai)のパスワードを聞かれますので入力します。
ユーザーが切り替わると「samurai」ユーザーとして操作することができます。
「su」と「su -」の違い
「su」コマンドを実行すると、環境変数は変更する前のユーザーが設定した内容が引き継がれますが、「-」を付けると環境変数が引き継がれません。
そのため、スーパーユーザーに変更して環境変数の内容を引き継ぐ場合には「su」、引き継がない場合は「su -」を使用するようにしましょう。
$ su -
ちなみに環境変数とはLinuxで動作するプログラムが参照するディレクトリや閾値などの情報が記載された変数で、あらかじめさまざまな環境変数が設定されています。
また、環境変数はユーザーが任意に作成することも可能です。
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、Linuxでユーザーを変更する「su」コマンドについて、
- suコマンドとは
- suコマンドの使い方
- suコマンドのオプション
- 「su」と「su -」の違い
などについて解説しました。
Linuxで開発する上で、ユーザーを切り替えて作業を実施することはよくありますので「su」コマンドの使い方についてはよく理解しておきましょう。
もし「su」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。