На практике они оба сделают вас суперпользователем. Тем не менее, они делают немного разные вещи, немного по-другому.
Во-первых, su -переключается на оболочку входа в систему, тогда как sudo -sнет. На практике это часто означает, что ваши переменные окружения не будут переключаться rootна sudo -s. Обратите внимание, что вы можете запустить просто, suчтобы не получить оболочку входа или sudo -iполучить оболочку входа [не во всех версиях].
Во-вторых, suи su -переключитесь на нового пользователя, попросив вас пройти аутентификацию в качестве нового пользователя. sudo -sи sudo -i(и просто регулярно sudo foo) позволяет вам запустить команду, для которой вы предварительно авторизованы [см. /etc/sudoers], возможно, попросив вас подтвердить свой текущий идентификатор.
Если вы хотите быть по-настоящему милым, вы также можете запустить sudo su -, что потребует войти в систему как root ( su -), запущенный пользователем root ( sudoчасть).
Если пользователь root заблокирован (например, в Ubuntu), вы не сможете войти в систему как пользователь root su. В этом случае вам нужно будет использовать sudo -sилиsudo -i