Atualizar:
A definição de variáveis de ambiente global ainda deve ser executada /etc/environment
, mas, como você apontou, o uso sudo -s
dessas variáveis é "desaparecido".
O motivo disso é sudo
uma política de redefinição do ambiente e definição de um caminho seguro . Está ativado por padrão:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Portanto, o que for definido no /etc/environment
caminho for substituído por sudo
.
A página de manual dos sudoers
estados:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. Any variables in the caller's environment
that match the env_keep and env_check lists are then
added. The default contents of the env_keep and
env_check lists are displayed when sudo is run by root
with the -V option. If the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
Como solução alternativa, você pode usar sudo su
isso para fornecer um shell com privilégios de root, mas contendo o PATH correto.
Resposta original
Você deve configurá-lo /etc/environment
.
Tente sudo YOUR_TEXT_EDITOR /etc/environment
(certifique-se de criar um backup primeiro).
Para mais informações: EnvironmentVariables
Variáveis de ambiente em todo o sistema
As configurações de variável de ambiente que afetam o sistema como um todo (e não apenas um usuário específico) não devem ser colocadas em nenhum dos muitos scripts em nível de sistema que são executados quando o sistema ou a sessão da área de trabalho são carregados, mas em
/etc/environment
- Este arquivo é destinado especificamente para configurações de variáveis de ambiente em todo o sistema. Não é um arquivo de script, mas consiste em expressões de atribuição, uma por linha. Especificamente, esse arquivo armazena as configurações de local e de caminho em todo o sistema.
Não recomendado:
/etc/profile
- Esse arquivo é executado sempre que um shell de logon do bash é inserido (por exemplo, ao fazer login no console ou através do ssh), bem como pelo DisplayManager quando a sessão da área de trabalho é carregada. Este é provavelmente o arquivo ao qual você será consultado ao perguntar aos administradores de sistemas UNIX veteranos sobre variáveis de ambiente. No Ubuntu, no entanto, esse arquivo faz pouco mais do que invocar o arquivo /etc/bash.bashrc.
/etc/bash.bashrc
- Esta é a versão geral do sistema do arquivo ~ / .bashrc. O Ubuntu é configurado por padrão para executar este arquivo sempre que um usuário entra em um shell ou no ambiente de desktop.
visudo
(precisa de permissões de root) para editar as configurações do caminho seguro. essa não é uma prática recomendada. É aqui apenas para a educação.sudo -i
simulará um login (de maneira semelhante asudo su -
) e, assim, fornecerá essas variáveis de ambiente.fonte