su или sudo сохранение / удаление определенных переменных среды

Я хотел бы иметь возможность войти в систему как другой пользователь и сохранить большинство, но не всю среду. В частности, я хотел бы установить $HOME на правильное значение для нового пользователя, но, возможно, все остальное. Если я использую sudo -E , вся моя среда останется прежней, в том числе $HOME . Если я использую sudo -E su , он почти работает, но по какой-то причине не сохраняет $ZDOTDIR , что является, в частности, одной из переменных, которые я хочу сохранить.

Кто-нибудь знает удобное решение этого вопроса или почему одна из немногих переменных, которые стираются с помощью sudo -E su это $ZDOTDIR ? Благодарю.

One Solution collect form web for “su или sudo сохранение / удаление определенных переменных среды”

Поскольку настройки sudoers различаются между ОС, трудно предсказать, что сработает для вас.

sudo -EH переключатель H пытается установить $ HOME значение целевого пользователя, но это не сохранит $ ZDOTDIR.

Или добавьте строку ниже к концу sudoers, используя visudo. Это говорит sudo, чтобы сохранить переменные, перечисленные в текущей среде. В этом случае вы использовали бы sudo без переключателей.

 Defaults env_keep += "ZDOTDIR OTHERVAR1 OTHERVAR2 [...]" 
  • Bash завершение параметров при использовании sudo
  • Запуск программы как root без использования sudo с обычной учетной записью пользователя
  • ulimit PICKLE: «Операция не разрешена» и «Команда не найдена»
  • Механизм хранения паролей в судо
  • Выполнять перезагрузку только с помощью sudo
  • Подскажите пароль на sudo?
  • Запустить bash-скрипт с sudo, некоторые команды в качестве обычного пользователя
  • Разрешить удаление sudo для удаленного пользователя для цели восстановления. Последствия для безопасности?
  • Автоматизация входа в систему с помощью sudo и su
  • Не удается использовать sudo при входе через ssh
  • Как я могу сохранить * all * environment vars для определенной команды в sudo?
  • Первый скрипт bash - введите пароль root только один раз.
  • Linux и Unix - лучшая ОС в мире.