Разница между «SUDO и SU»

В чем же всё таки разница между «SUDO и SU»

Для получения прав рута на сервере я обычно использую команду sudo -s. Почему именно ее — точно не вспомню, просто исторически сложилось и каких-либо проблем по этому поводу не испытывал.

sudo:

Sudo (superuser do) позволяет системному администратору предоставлять определенным пользователям (или группам пользователей) возможность запускать некоторые (или все) команды как root при регистрации всех команд и аргументов. Sudo работает на основе команд. Это не замена оболочки!!!
Особенности включают в себя: возможность ограничить, какие команды пользователь может запускать на основе каждого узла, обильное протоколирование каждой команды (предоставление четкого контрольного журнала, кто сделал что), настраиваемый тайм-аут команды sudo и возможность использовать один и тот же файл конфигурации (sudoers) на разных машинах.


su: 

Команда su, также называемая пользователем-заменителем, суперпользователем или пользователем-переключателем, позволяет оператору компьютера изменять текущую учетную запись пользователя, связанную с запущенной виртуальной консолью.
По умолчанию и без какого-либо другого аргумента командной строки это поднимет текущего пользователя суперпользователю локальной системы.
При запуске из командной строки su запрашивает пароль целевого пользователя и, если он аутентифицирован, предоставляет оператору доступ к этой учетной записи,
а файлы и каталоги, к которым разрешена учетная запись, разрешены.
Кроме того, можно переключиться на другого пользователя, который не является суперпользователем.

В случае 'su' и 'su -'
«su -» в этом случае сначала переключается пользователь, а затем вызывается shell, то есть очищая все переменные окружения и запуская чистую сессию рута. «su» не очищает переменные окружения, а просто переключает пользователя оставляя переменные окружения старого пользователя.