На этот вопрос уже есть ответ здесь:
Кажется, что нет никакой разницы. Когда выполняются команды whoami или id, все они выдают учетные данные root. Это иллюзия? Если учетная запись root по умолчанию отключена в Ubuntu, и поэтому su выдает ошибку аутентификации, тогда зачем разрешать sudo -I
Edit: Извините, ЕДИНСТВЕННОЕ различие, о котором я узнал, заключается в том, что sudo -I запрашивает пароль пользователь, который вызвал команду, и su запрашивает пароль пользователя root или другого целевого пользователя.
Есть ли ДРУГОЕ отличие?
ОТРЕДАКТИРОВАННЫЙ.Примечание: Этот ответ был в большой степени отредактирован начиная с его последнего повторения на основе комментариев Eliah Kagan.
sudo -i
выполняет оболочку входа в систему с полномочиями пользователя root, моделируя начальный вход в систему с корнем, действуя подобный su -
. Главная разница между sudo -i
и su -
это sudo -i
может быть выполнен с помощью пароля sudoer, в то время как su -
должен быть выполнен с паролем корневой учетной записи. Следовательно, если Вы находитесь на значении по умолчанию *buntu установка, где корневой вход в систему отключен, sudo -i
может использоваться в то время как su
и его варианты не могут.
Если Вы выполняете следующие команды:
$ sudo -i
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
Вы получите вывод:
/root
Следовательно, Вы видите это sudo -i
моделирует начальный корневой вход в систему, включая изменение домашней папки ($HOME
) к корню, а не Ваше собственное. Это также означает sudo -i
файлы входа в систему чтений как .profile
.
Между тем, sudo -s
запускает новую оболочку, но не моделируя начальный вход в систему - файлы входа в систему не читаются и $HOME
все еще установлен на домашнюю папку Вашего пользователя.
Если Вы выполняете следующие команды:
$ sudo -s
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
Вы получите вывод:
/home/<username>
От этого Вы видите это sudo -s
не моделирует начальный вход в систему и не изменяется $HOME
.
sudo -i
попытки стать пользователем, пароль которого Вы используете, он выполняет вход в систему того пользователя определенные ресурсы (.profile
и т.д.) и пытается работать из корневого каталога пользователя.
su
, с другой стороны журналы Вы в как другие пользователи, в корневом каталоге другого пользователя. И , что вход в систему учетной записи определенные ресурсы будут выполнены. Значением по умолчанию su
журналы Вы в как root
.
я рекомендую использовать sudo -i
[более чем 116], если Вы не знаете то, что Вы делаете.