su と su - の違いは下記の通り。
# ホームディレクトリと環境変数は切り替え前のユーザの値になる
su root
# ホームディレクトリと環境変数が切り替え後(root)の値になる
su - root
環境変数を比較
それぞれ printenv した結果を確認。
(amazon linux の ec2-user で検証)
su root
SUDO_USER=ec2-user
SUDO_UID=500
USERNAME=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin
MAIL=/var/spool/mail/ec2-user
PWD=/home/ec2-user
SUDO_COMMAND=/bin/su
SUDO_GID=500
su - root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin
PWD=/root
どちらを使うか
ユーザをスイッチするという意味では、環境変数が切り替えユーザと同じになる su - を使用するほうがよい。
su を使う場合、MAIL, PATH, PWD がもとのユーザのまま、
その他、export で設定した変数も su の場合は引き継がれるので気をつける。