Хех, даже самому интересно, но если без параметра запустить то точно различий нет, а так вообще обычно задается параметр для чего(какого приложения нужно запустится под рутом) например su -postgres (можно даже без тире)
Usage: su [options] [LOGIN]
Options:
-c, --command COMMAND pass COMMAND to the invoked shell
-h, --help display this help message and exit
-, -l, --login make the shell a login shell
-m, -p,
--preserve-environment do not reset environment variables, and keep
the same shell
-s, --shell SHELL use SHELL instead of the default in passwd
su - это вибрать юзера. тоисть su root | su mysql | su user_57 если параметр не указан по умолчанию берет root . я думаю потому что это первый (главний) юзвер.
sudo - это выполнить от имени. sudo mysql | sudo user_57 выполнить команду от имени юзера.
emik про судо вообще разговора не было...
--
Для тех кто не понял расшифрую тест Шаркана
обычный "su" переводит пользователя из обычного в root`a и остается в том же катологе в котором и был
--
команда "su -" так же переводит пользователя в рута, и вместе с этим переходит в каталог суперпользователя (/root)