20201028のLinuxに関する記事は1件です。

「sudo su」ってざっくり言ってなんぞ?

自分用のメモとして残します。

はじめに

今でこそ、理解はしていますが、初めてLinuxOSを操作するときに「なんでsudo suってうつんだ?」「なんで今回はsudoの後ろにsuがないんだ?」とか「え、今回はsu の後ろに-(ハイフン)がついてるんだ?」となって混乱していました。
今更感はありますが、windowsユーザだといまいち「結局sudo suってなんだ?」となるので、きちんとコマンドを知るという意味でまとめてみました。

sudoコマンドとは?

スーパーユーザ(=root)としてsudoに続くコマンドを実行するということ。
つまり、その瞬間だけroot権限になってコマンドを実行するということです。
要約すると「管理者権限で○○○コマンドを実行します。」となります。
ちょっと違うかもしれませんがWindowsのUACみたいな感じかな?

#管理者として実行したいコマンドがある場合に使う
sudo コマンド

suコマンドとは?

sudoの続きによくくる「su」というのはコマンドです。
では、suコマンドを実行するとどうなるのか?
suコマンドはユーザを切り替えるコマンドになります。
このsuコマンドを実行すると以降の操作は切り替えたユーザで操作になります。
windowsで例えるのであれば、デスクトップを表示した状態でAlt+F4でユーザの切り替えがあると思います。
これは現在サインインしているアカウントをログオフせず、別のアカウントでもサインインするという動作になるため、suコマンドはそれに近いと思います(厳密には全然違うといえば違うけど、ざっくりとした概念はそんな感じだとおもう。。。)

#ユーザを切り替えたいときに使う。
su 切り替えるアカウント名
#(アカウント名を省略すると暗黙的にrootとしてユーザ切り替えを処理する(重要))

余談だけど、じゃあ、「su -(ハイフン)」 コマンドは?

suコマンドに-(ハイフン)がついているときとそうでないときがあります。
これは単純でハイフンがついているときは、アカウントを切り替えたときにカレントディレクトリを切り替えたユーザのホームディレクトリに移動するというオプションになります。
そのため、カレントディレクトリを切り替えたくない場合はハイフンは付けません。

#ユーザを切り替え+切り替えたユーザのホームディレクトリへ移動
su - 切り替えるアカウント名

以上。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む