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/