Как переключиться на root и использовать те же dotfiles, что и мой обычный пользователь?

Как переключиться на root и использовать те же dotfiles, что и мой обычный пользователь?

Я запускаю zsh на Mac OSX и иногда хочу переключиться в терминале на пользователя root.

Я хотел бы сохранить все мои dotfiles, конфигурацию путей к среде и скрипты от моего обычного пользователя и просто выполнять большую часть задач как root.

Я использовал sudo bashили sudo zshкак простой способ переключиться на root, но у этого способа есть недостаток: он не запускает все мои конфигурации zsh, которые есть у меня для обычного пользователя.

Каков наилучший способ «стать пользователем root» для выполнения ряда команд и сохранить все настройки конфигурации/среды, имеющиеся у моего обычного пользователя?»

Например, я настроил следующие параметры для обычного пользователя и хотел бы, чтобы все они были доступны также и пользователю root:

  • .zshrc
  • ~/bin
  • .псевдонимы
  • режим vim для ввода

EDIT: Обратите внимание, что я знаю, что мне не следует часто "запускать как root". И я этого не делаю. Но мне приходится время от времени постоянно запускать несколько простых команд как root, и я открываю разделение tmux только для этого использования, и ни для чего другого.

решение1

Чтобы получить обычные файлы dot, убедитесь, что это sudoне изменяет HOMEпеременную окружения. Произойдет ли это, зависит от конфигурации sudo во время компиляции и во время выполнения. Чтобы сохранить HOME, отредактируйте sudoersфайл (запустите visudo, никогда не редактируйте этот файл напрямую!) и убедитесь, что он содержит

Defaults !always_set_home, !set_home
Defaults env_keep+=HOME

(Некоторые из них могут быть ненужными в зависимости от параметров компиляции.) И, конечно же, не запускайте sudo -i.

Однако избегайте слишком многого от имени root. Например, вместо того, чтобы запускать редактор от имени root, используйте sudoedit.

решение2

Вы почти наверняка не захотите этого делать.

Если ваш пользователь root был направлен на файлы точек обычных пользователей, то разрешения для этих файлов точек могут измениться, что усложнит ситуацию для вашего обычного пользователя.

Вместо этого вы можете копировать файлы в домашний каталог пользователя root при каждом входе в систему.

Где-нибудь в вашем ~/.zshenv (для root) скопируйте файлы и настройте их разрешения. Таким образом вы сохраните свою среду в порядке и сможете использовать свои настройки.

Лично я, если хочу запустить несколько команд root, sudo su -могу попробовать sudo -E su -pсохранить среду пользователя.

Обязательное предупреждение!

Никогда не бывает веской причины бежать sudo su. Это далеколучшезапускать sudoперед каждой командой. Я, конечно, sudo suиногда так делаю. Но общее правило — не надо sudo su.

Связанный контент