Переменная среды не отображается после `sudo su`

Может ли глушение потока ошибок быть решением?

find / -type d -name 'force_fields' 2>/dev/null
0
01.05.2018, 16:52
2 ответа

Когда вы введете команду su user, вы переключитесь на пользователя без загрузки всего его профиля. Загружаются только переменные $HOME, $SHELL, $USERи $LOGNAME. Чтобы загрузить весь профиль пользователя при переключении на него, вы должны указать, что вы входите в систему пользователя, используя флаг --login, который имеет ярлык в виде одиночного тире(-)после su, поэтому ваша команда будет выглядеть как su - user.

2
28.01.2020, 02:18

Вам нужно будет добавить env_keep += "NODE_ENV"в файл в /etc/sudoers.d/. Я бы рекомендовал сделать это следующим образом:

  1. Запустите sudo -i, чтобы иметь корневую оболочку на случай, если что-то пойдет не так. (Однажды я напортачил с этим, и это было очень неприятно исправлять ).
  2. В отдельной оболочке выполнитеsudo visudo -f /etc/sudoers.d/envkeep
  3. В этом файле добавьтеDefaults env_keep += "NODE_ENV"
  4. После сохранения выйдите и попробуйте sudo -i. Это должно сработать и поместить вас в оболочку, где NODE_ENVдолжен был быть сохранен.
2
28.01.2020, 02:18

Теги

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