LIVE SIMPLY

データ活用組織のマネジメントを行いつつコーチング、本など学んだことを書くblog

【備忘】suとsu - の違い

参考:su〜ログイン中のアカウントを変更する

今まで、あまり意識しないでsu - を使っていたので
一度まとめておく

■suとsu -の違い
▼su
コマンド実行前のユーザーアカウントの操作環境を引き継ぐ
※使用する シェル の種類や 環境変数 、 ホームディレクトリ など

▼su -
"root" に設定されている操作環境を用いる


【注意点】
・su の場合と su - の場合では "PATH" 環境変数が異なる

"root" ユーザーには デフォルト で "/usr/sbin/" が "PATH" 環境変数として与えられるが、
一般ユーザーにデフォルトで与えられる"PATH"には "/usr/sbin/" が含まれていない。

従って su で "root" に変更した場合は "/usr/sbin/" 以下にある コマンド を実行したい場合は必ず パス 名付きで実行しなければならなくなります 。

そういう点を考えれば、できるだけ su - を利用したほうが良さそう。

実際に試してみる。

○「-」なしパターン
$ sudo su
# echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/inf/[ユーザー名]/bin
# exit
exit

○「-」ありパターン
$ sudo su -
# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

たしかにそうなっていた!