In my opinion any use of 'su' after 'sudo' is an overkill.
You are using su without changing the effective user ID, which is the primary purpose of su, because that was already done by sudo. You are using the default behavior of su to execute the shell after changing user ID as the primary purpose, which you can better and more explicitly achieve by directly executing the shell from sudo. You are banking on the su behavior to not ask for a password again if the calling user is already root (else you would need to type a password twice; once for sudo and once for su). You can execute the shell as a login shell by passing -l option or setting argv[0] with a '-' prefix. BUT... sudo by default does not change the value of $HOME to match the target user (unless 'set_home' or 'always_set_home' is in /etc/sudoers); use the -H option to override -- $HOME determines whose profile scripts are applied for -l. And sudo nor bash change the current directory (unless some command in bash_profile does that).
So 'sudo -H bash -l' is almost like 'sudo su -' without the overkill, except that the current directory is not changed.
And 'sudo -s' is like 'sudo su' without the overkill.
sudo -i
andsudo -s
. – Gilles 'SO- stop being evil' Jul 22 '14 at 23:17