Возможный дубликат:
В чем разница между sudo -i и sudo su -
Я знаю, что обе команды приводят к получению root-shell. Но есть некоторые отличия. На некоторых серверах, например. подсказка другая:
nomike@testerver:~> sudo -i
root@testerver:~> logout
nomike@testerver:~> sudo su -
[root@testerver ~]#
Итак, я предполагаю, что обработка ".bashrc", ".bash_profile" и ".profile" как-то отличается.
Один вызывает оболочку входа в систему, а другой нет?
Обе sudo -i
и sudo su -
предоставит вам интерактивную оболочку входа в систему. Разница, которую вы видите, заключается в том, как sudo настроен для обработки переменных среды и в данном случае PS1. Ваш PS1 отличается от PS1 root. Если вы заглянете в / etc / sudoers, вы, вероятно, найдете env_keep
строка, содержащая PS1.
Defaults env_keep += "MAIL PS1 PS2 QTDIR ..."
Это указывает sudo сохранять (среди прочего) PS1
переменная среды в среде команд, которые вы выполняете, так что это то, что вы видите (разные подсказки).
Когда ты бежишь sudo su -
измененная среда передается в su
который затем запускает оболочку входа в систему, su не заставляет среду быть такой же, поэтому она настраивается с тем, что находится в файлах инициализации root.