後輩に訊かれたついでに、メモしておく。
タイトルの事を訊かれ、「manを見るか、ググれ」と言ったものの、
CentOS の man は分かりにくかった(´・ω・`)すまん
でも、Ubuntu の man は分かりやすい。
su はログインセッション中に別のユーザになるために用いる。
ユーザ名を指定せずに起動した場合、デフォルトではスーパーユーザの ID に変更する。
オプション引数 - を用いると、直接ログインした場合と同じ環境に初期化される。
つまり、次のようになる。
- su
環境設定を引き継いだままrootになる。
- su -
rootの環境設定に切り替えてrootになる。
また、rootにしかパスが通っていないコマンドが扱えるようになる。
Ubuntu の man が分かりやすかったので、Ubuntu の環境での例。
hoge@srv:~$ sudo su - root@srv:~# ↑ ホームディレクトリに移動する hoge@srv:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
一方、「 - 」を入力しない場合・・・
hoge@srv:~$ sudo su root@srv:/home/hoge# ↑ ホームディレクトリに移動しない root@srv:/home/hoge# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games