Зачем сравнивать теплое с мягким? У этих утилит разные задачи и если, в вашем случае, хорошо использовать sudo, это ни коим образом не означает, что она круче su.
Соглашусь, что на домашнем компе sudo в целом не более, чем замена su. Но есть некоторое удобство - не надо запоминать пароль рут
TopE, kvv-vp, я удивлён, даже очень, услышать от вас такие комментарии, всё равно что мимо.
Тема создана не для определения какая команда круче, а что из себя представляет.
Вы по ссылкам из первого сообщения ходили? или хотя бы прочитали цитаты оттуда?
............
во-первых, sudo по умолчанию требует указания пароля того пользователя, который получает права другого, а не пароля того, чьи права приобретаются; правда, это может быть изменено;
Во-вторых, действие sudo распространяется по умолчанию только на одну команду — ту, которая указывается в качестве ее аргумента; хотя и такое поведение можно изменить с помощью соответствующих опций,Этим достигается две цели:
а) возможность выполнения пользователем административных действий без сообщения ему суперпользовательского пароля, и
б) снижение риска повредить систему вследствие забывчивости.Да, есть еще и третья, дополнительная возможность, предоставляемая sudo — протоколирование действий, позволяющее определить, в результате чего система рухнула.
В элементарном виде применение команды sudo — элементарно же просто: требуется лишь указать в качестве ее аргумента имя команды, требующей исполнения, со всеми необходимыми последней опциями и аргументами. После этого запрашивается пароль запустившего её пользователя — и команда исполняется.
команда su
Исторически единственным универсальным способом выполнить команду от имени другого пользователя в Unix была программа su. Запущенная без параметров, она запрашивала пароль суперпользователя и в случае успеха просто подменяла текущее имя пользователя на root, оставляя почти все переменные окружения от старого пользователя (кроме PATH, USER и еще пары-тройки, см. man su от своего дистрибутива). Более корректно было запускать ее как su - — в таком случае оболочка получала также и правильный environment. С параметром -c можно было выполнить команду: su -c "vim /etc/fstab".При этом доверенным пользователям приходилось помнить пароль root'а и у всех пользователей, перечисленных в группе «wheel» (т.е. в группе, члены которой могли выполнить команду su и стать суперпользователем), был одинаковый неограниченный доступ ко всей системе, что являлось серьёзной проблемой безопасности.
команда sudo
Затем появилась команда sudo, и это был прорыв. Теперь администратор мог указывать список разрешенных команд для каждого пользователя (или группы пользователей), файлы, доступные для редактирования, специальные переменные окружения и многое другое (все это великолепие управляется из /etc/sudoers, см. man sudoers от своего дистрибутива). При запуске sudo спрашивает у пользователя его собственный пароль, а не пароль root. Полноценный шелл можно получить с помощью "sudo -i"
В Debian-based дистрибутивах пользователь root не имеет пароля, вместо этого все административные действия должны производиться через sudo или его графический аналог gksudo. Являясь полной заменой su, sudo должна бы быть единственной командой переключения между пользователями, однако, как было сказано вначале, в настоящий момент это не так и все зачем-то изобретают дикие последовательности из sudo, su, vi и черточек.
- в случае с su администратор системы не может ограничить команды, выполняемые пользователями, а в sudo — может
Важное отметил жирным шрифтом, хотя там всё важное, лично мне, в команде sudo видится больше правильных перспектив, а команда su представляется как устаревшая.
Но я не работаю админом и не занимаюсь с ОС профессионально, нюансов не знаю, поэтому и создал тему, чтобы более опытные их добавили и пояснили.
А они мне про мягкое и тёплоё лепят.
И подытожу цитатой с Хабра:
Q: я единственный пользователь своей системы и привык к su, зачем мне sudo?
A: отвечу вопросом на вопрос: если есть правильный sudo, зачем использовать устаревший su?