Para criar variáveis de ambiente persistentes, adiciono o arquivo de script ao diretório /etc/profile.d, por exemplo:
# meu script exportar MY_VAR = var_value
Isso funciona corretamente para o usuário atual:
alex @ alex-64: ~ $ echo $ MY_VAR var_value
Agora eu preciso das mesmas variáveis de ambiente para o usuário root, mas o script /etc/profile.d não funciona para root:
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 #
Como posso definir as mesmas variáveis para a raiz?
root
environment-variables
Alex F
fonte
fonte
sudo
está muito relacionada. (Mas não é uma duplicata porque esta questão é sobre como personalizar de raiz próprio meio ambiente.)Respostas:
O sudo normalmente não preserva variáveis de ambiente local. Você deve usá-lo com a
-E
opção de fazer isso, ou sejasudo -E su
, preservará $ MYVAR como root.Como alternativa, para criar variáveis persistentes realmente abrangentes ao sistema, defina-as
/etc/environment
.fonte
FOO=bar
Como o processo que define sua própria variável de ambiente, por exemplo, editando '~ / .bashrc', você pode definir a variável de ambiente raiz editando '/root/.bashrc'.
fonte
Defaults env_reset
in/etc/sudoers
redefinirá a raizPATH
definida por/etc/environment
.Você pode modificá-lo
Defaults !env_reset
para desativar a redefinição ou adicionar:fonte