Podívejme se na vaše případy:
su -
spustí /bin/sh jako uživatel root pomocí prostředí root. Je vyžadováno heslo uživatele root a protokolování MŮŽE být protokolováno v závislosti na nastavení syslog (obvykle je výchozí /var/log/auth.log).
sudo /bin/sh
spustí shell jako uživatel root s použitím aktuální sady proměnných prostředí (s některými výjimkami, které by byly definovány v souboru sudoers). Heslo je heslo zdrojového uživatele a NE heslo uživatele root. sudo je obvykle protokolováno.
sudo su -
spustí shell (obvykle /bin/sh) jako uživatel root nastavující prostředí jako uživatel root. To bude vyžadovat heslo zdrojového uživatele a toto bude obecně zaprotokolováno.
Někdy je nutné mít kořenové prostředí nad svým vlastním prostředím, takže su - je vhodná metoda. Pamatujte, že sudo bude v obou případech stále zaznamenávat použití příkazu shell.