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

LinuxではOSを使用するユーザーを切り替えるために便利な「su」コマンドがあります。

ここでは「su」コマンドについて以下の内容で解説していきます。

su_image

この記事では「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

実行結果:
su_image01

コマンドを実行すると、ユーザー名(ここではsamurai)のパスワードを聞かれますので入力します。

ユーザーが切り替わると「samurai」ユーザーとして操作することができます。

「su」と「su -」の違い

「su」コマンドを実行すると、環境変数は変更する前のユーザーが設定した内容が引き継がれますが、「-」を付けると環境変数が引き継がれません。

そのため、スーパーユーザーに変更して環境変数の内容を引き継ぐ場合には「su」、引き継がない場合は「su -」を使用するようにしましょう。

$ su -

ちなみに環境変数とはLinuxで動作するプログラムが参照するディレクトリや閾値などの情報が記載された変数で、あらかじめさまざまな環境変数が設定されています。

また、環境変数はユーザーが任意に作成することも可能です。

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

「実はなんとなくしか理解していない…」
「Linuxを効率よく学習する方法が知りたい」

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、Linuxでユーザーを変更する「su」コマンドについて、

  • suコマンドとは
  • suコマンドの使い方
  • suコマンドのオプション
  • 「su」と「su -」の違い

などについて解説しました。

Linuxで開発する上で、ユーザーを切り替えて作業を実施することはよくありますので「su」コマンドの使い方についてはよく理解しておきましょう。

もし「su」コマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次