su/sudoのPATHの違いを見てみる
Vagrantで起動したCentOS7の環境で、様々な方法でrootになって、$PATHの値がどうなるのか確認する。
CentOS7にログイン
Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "centos/7" end
> vagrant up > vagrant ssh
Vagrantのrootのパスワード
ちなみに、Vagrantのデフォルトのrootのパスワードは「vagrant」
$PATHの値
rootになる前のvagrantユーザーの$PATHは下記の通り。
$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin
su
# echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin
su -
# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
sudo su
# echo $PATH /sbin:/bin:/usr/sbin:/usr/bin
sudo su -
# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
sudo -i
# echo $PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
sudo -s
# echo $PATH /sbin:/bin:/usr/sbin:/usr/bin
sudo $SHELL
# echo $PATH /sbin:/bin:/usr/sbin:/usr/bin
ちなみに$SHELLの値は
$ echo $SHELL /bin/bash
参考
suとsudoの違い
https://qiita.com/aosho235/items/05d4a4f549016e41cde7
SUDOコマンドの使い方でPATH環境変数の違いを調べてみた
https://blog.denet.co.jp/sudocommand-path-diff/