Variáveis ​​de ambiente em sistemas semelhantes ao Linux

Variáveis ​​de ambiente em sistemas semelhantes ao Linux

Como definir variáveis ​​de ambiente para um usuário da maneira mais genérica que seja independente das variáveis ​​de ambiente do shell (como perfil para shells do tipo Bourne, bahsrc, zshrc, zshenv, ..)? A ideia é definir variáveis ​​de ambiente para um usuário durante o login do usuário e disponibilizá-las (bifurcadas) para qualquer processo (gerado não apenas pelo processo shell, mas por qualquer outro processo), incluindo qualquer tipo de shell?

Responder1

Esta documentação do Ubuntufala sobre ~/.pam_environment:

Variáveis ​​de ambiente para toda a sessão

Arquivos adequados para configurações de variáveis ​​de ambiente que devem afetar apenas um usuário específico (em vez do sistema como um todo) são ~/.pam_environmente ~/.profile. Após ter editado um desses arquivos, você deveráfaça login novamentepara inicializar as variáveis.

~/.pam_environment

Este arquivo destina-se especificamente à configuração do ambiente de um usuário. Não é um arquivo de script, mas consiste em expressões de atribuição, uma por linha. Este exemplo define a variável FOO como uma string literal e modifica a variável PATH:

FOO=bar
PATH DEFAULT=${PATH}:${HOME}/MyPrograms

Observação:

  1. Você não pode citar o valor ao fazer uma atribuição de variável simples como no FOO=barexemplo.

  2. A sintaxe usada para modificar PATH, cuja sintaxe difere dos arquivos de script, é necessária para que a expansão de variáveis ​​funcione.

  3. ~/.pam_environment é gravado quando você usa várias GUIs para definir o idioma ou formatos regionais. Conseqüentemente, se você, por exemplo, definir LC_TIME editando ~/.pam_environmentmanualmente, sua entrada será substituída se você usar posteriormente a GUI de suporte ao idioma para alterar a configuração dos formatos regionais.

Este arquivo, assim como /etc/environment, parece ser consultado porpam_env.soo que acredito que aconteceria como parte do processo de login e seria separado de qualquer shell.

informação relacionada