В чем технические различия между ними? Единственное, что я заметил, это то, что
sudo su
требует ввести свой собственный пароль (при условии, что вы не являетесь пользователем root)
Пока
su root
требует ввести пароль root. Однако оба, похоже, вводят вас в учетную запись пользователя root.
решение1
Между ними есть тонкое различие. su root
(которое можно сократить до просто su
) запускает команду su от имени пользователя, который ее вызвал. sudo
запускает указанную команду ( su
) от имени root. Запуск su
от имени root по сути является пустой операцией, хотя, вероятно, он запускает новую оболочку. Запуск sudo -i
— более чистый (по моему мнению) способ запуска sudo su
.
Кроме того, как указывалось ранее, в стандартной установке Ubuntu нет пароля root, поэтому вызов его su
сам по себе не удастся.
решение2
Вторую команду невозможно выполнить в стандартной установке Ubuntu, где учетная root
запись не включена.
Но предположим, что вы разблокировали root
учетную запись, дав ему пароль, две команды могут отличаться только набором переменных окружения и оболочки, я думаю. Сравните вывод env
в двух ситуациях, а также, возможно, вывод, set
чтобы увидеть различия.
решение3
Еще одно отличие: команда sudo использует ВАШ пароль, и вам необходимо авторизоваться в файле /etc/sudoers. Файл sudoers определяет, какие команды вам разрешено выполнять с помощью sudo. Команда su использует пароль ROOT, который должен быть известен.
В зависимости от вариантов вы можете продолжить изучение корней или продолжить изучение.
Я использую "sudo bash" для получения root shell. Это почти идентично (может быть, так и есть, я не уверен) "sudo -i". Окружение контролируется так: "sudo su - other_user" получает окружение для other_user. Но "sudo su other_user" переносит ваше окружение вперед под UID other_user. Это означает, что ваши псевдонимы и т. п. будут доступны.
Кроме того, результаты аудита различаются в журналах аудита при использовании su и sudo. Больше прослеживаемости с sudo. Наконец, для su вы даете пароль root и испытываете боль от обслуживания. Если вы авторизуете людей с помощью sudo, вы просто обновляете файл sudoers, чтобы добавлять или удалять людей, и им нужно будет только помнить свой собственный пароль. Sudoers также позволяет вам решать, что могут делать другие.
решение4
sudo -i — вот как это делается, по крайней мере с 11.00, не уверен насчет ранее или после 12.04.
переносит вашу среду вперед под UID other_user. как было сказано ранее