Недавно был задан вопрос о нескольких сисадминах, работающих от имени пользователя root, и на sudo bash -l
него ссылались.
Я искал это в Google и SE, но я не понимаю разницу между sudo bash -l
и sudo -i
.
Из справочных страниц по bash и sudo может показаться, что разница может быть в том, что sudo bash -l
запускаются ~ / .bash_profile, ~ / .bash_login и ~ / .profile, а также ~ / .bash_logout пользователя root, но при тестировании себя это выглядит так он запускает .bashrc обычного пользователя, а не root. Возможно, я неправильно понял, на какого пользователя ссылается выражение ~ на страницах руководства. Разъяснение различий и сценариев использования приветствуется.
Кроме того, чтобы добавить к ответу @ johnshen64, я заметил, что
sudo -i
вызов обновляет$USERNAME
переменную env доroot
иcd ~
для пользователя home следующим образом;Однако for
sudo bash -l
$USERNAME
unmoled, и рабочий каталог не изменяется. (хотя это не согласуется с другими пользователями, см. комментарии ...)Таким образом, по-видимому, вы не получаете точно такой же набор
~/.bashrc
или не в том же порядке и т. Д.(моя коробка могла быть немного испорчена моими
.bashrc
повозками, так что YMMV)источник
echo $USERNAME
возвращает мне root оба раза (на моем рабочем столе Ubuntu и Centos 5.2). PWD, как вы сообщаете, однако.