На практике они оба сделают вас суперпользователем. Тем не менее, они делают немного разные вещи, немного по-другому.
Во-первых, 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