Назад | Перейти на главную страницу

В чем разница между «sudo su -» и «sudo -i»?

Возможный дубликат:
В чем разница между 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.