В чем разница между "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" как-то отличается.

Вызывает ли один из них оболочку для входа, а другой нет?

6
задан 13 April 2017 в 15:14
1 ответ

Оба 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 , который затем запускает логин shell, su не заставляет среду быть той же самой, поэтому она настраивается с тем, что находится в файлах инициализации root.

5
ответ дан 3 December 2019 в 00:32

Теги

Похожие вопросы