Как я устанавливаю персистентные переменные среды для корня?

Для создания персистентных переменных среды я добавляю файл сценария к/etc/profile.d каталогу, например:

# my script
export MY_VAR=var_value

Это работает правильно на текущего пользователя:

alex@alex-64:~$ echo $MY_VAR
var_value

Теперь мне нужны те же переменные среды для пользователя root, но/etc/profile.d сценарий не работает на корень:

alex@alex-64:~$ echo $MY_VAR
var_value
alex@alex-64:~$ sudo su
root@alex-64:/home/alex# echo $MY_VAR

root@alex-64:/home/alex# 

Как я могу установить те же переменные для корня?

50
задан 10 July 2012 в 15:11

4 ответа

sudo обычно не сохраняет локальные переменные среды. Для этого вы должны использовать его с переключателем -E , то есть sudo -E su сохранит $ MYVAR для root.

В качестве альтернативы, чтобы создать постоянные переменные, которые действительно являются общесистемными, вы должны установить их в / etc / environment .

55
ответ дан 10 July 2012 в 15:11

Как и процесс определения собственной переменной окружения, например, редактируя '~/.bashrc', можно определить переменную окружения root, отредактировав '/root/.bashrc'.

10
ответ дан 10 July 2012 в 15:11

По умолчанию env_reset в / etc / sudoers сбросит PATH root, определенный в / etc / environment .

Вы можете изменить его на По умолчанию! env_reset , чтобы отключить сбросить или добавить:

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
10
ответ дан 10 July 2012 в 15:11

Переменные среды можно передавать с помощью флага env . Мне всегда нужно обходить прокси, и это постоянная проблема для меня. Особенно, когда вам нужно передать PATH и переменные среды прокси.

Команда:

sudo env "ENV=$ENV1" "ENV2=$ENV2" [command]

И вы можете добавить его как псевдоним (добавьте этот .bashrc , . bash_aliases или .zshrc и т.д.).

Пример моего псевдонима:

alias psudo='sudo env "PATH=$PATH" "HTTP_PROXY=$HTTP_PROXY" "HTTPS_PROXY=$HTTPS_PROXY" "http_proxy=$http_proxy" "https_proxy=$http_proxy"'

Имейте в виду, что это явно снижает безопасность sudo.

0
ответ дан 5 January 2021 в 23:38

Другие вопросы по тегам:

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