Чтобы создать постоянные переменные среды, я добавляю файл скрипта в каталог /etc/profile.d, например:
# мой сценарий экспорт MY_VAR = var_value
Это работает правильно для текущего пользователя:
alex @ alex-64: ~ $ echo $ MY_VAR var_value
Теперь мне нужны те же переменные окружения для пользователя root, но скрипт /etc/profile.d не работает для root:
alex @ alex-64: ~ $ echo $ MY_VAR var_value alex @ alex-64: ~ $ sudo su root @ alex-64: / home / alex # echo $ MY_VAR корень @ Alex-64: / дома / Alex #
Как я могу установить те же переменные для корня?
root
environment-variables
Алекс Ф
источник
источник
sudo
, очень связан. (Но это не дубликат, потому что этот вопрос о том, как настроить собственную среду root .)Ответы:
sudo обычно не сохраняет локальные переменные окружения. Для этого вы должны использовать его с
-E
ключом, т.е.sudo -E su
сохраните $ MYVAR для root.В качестве альтернативы, для создания постоянных переменных, которые являются действительно общесистемными, вы должны установить их в
/etc/environment
.источник
FOO=bar
Как и процесс, в котором вы определяете свою собственную переменную среды, например, редактируя «~ / .bashrc», вы можете определить переменную среды root, отредактировав «/root/.bashrc».
источник
Defaults env_reset
в/etc/sudoers
сбрасывает корень,PATH
определенный/etc/environment
.Вы можете изменить его,
Defaults !env_reset
чтобы отключить сброс или добавить:источник