自分用のメモとして残します。
はじめに
LinuxOSを操作するときに出てくる sudo su
というコマンド。
今でこそ理解はしていますが、当時は
「なんで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 - 切り替えるアカウント名
以上。