linux: como alterar permanentemente e globalmente variáveis de ambiente

4

Eu quero fazer o seguinte para cada usuário que fizer login na minha caixa do Linux:

export PATH=$PATH:~/.path

E eu não sei como fazer isso além de adicionar manualmente essa linha em todos os arquivos ~ / .bashrc.

Além disso, um cron job meu executa um programa e eu quero (para esse cronjob) o PYTHONPATH configurado para algo específico. qualquer arquivo .bashrc afetará o ambiente do cronjob? Como eu mudo o ambiente de um cronjob.

Além disso, estou curioso para saber como alterar a variável PATH na inicialização. Outros programas parecem fazer isso quando estão instalados, então, como eu faria isso?

    
por Alexander Bird 20.07.2010 / 22:31

2 respostas

3

Ambientes para shells

Essencialmente, qualquer coisa que execute processos tenderá a ler um arquivo de configuração ao inicializar, e para afetar o ambiente disso, você precisa acessar seu arquivo de configuração.

Para shells de usuários, lugares "óbvios" são .profile , .bashrc , .bash_profile (eu acho) e talvez um par de outros que eu não lembro. Obviamente, mais e outros se você usar zsh , csh , tcsh ou o que quer que seja como um shell.

Existem arquivos de inicialização lidos pelo seu ambiente de janelas, que podem ser o KDE ou o Gnome. O gerenciador de janelas específico que você executa pode também ler um arquivo de configuração. Eu admito que não sei os nomes desses arquivos nem para minha própria instalação.

Finalmente, geralmente há arquivos de configuração "master" para todos esses ambientes em algum lugar em /etc . Eles fornecem padrões para coisas que os usuários não fazem.

Eu acho que programas que se instalam conscienciosamente checam as várias possibilidades. Várias distribuições Linux podem oferecer alguns scripts auxiliares para isso.

cron

Este é muito mais fácil. Por motivos de segurança, cron apenas transmite algumas variáveis de ambiente para subprocessos, SEMPRE. Acho que USER é um desses e MAILTO de outro. Tanto quanto eu sei, não há PATH set - isso muitas vezes incomoda novatos. O ambiente de uma tarefa do cron é completamente diferente do seu ambiente de shell! Qualquer coisa que você queira no ambiente, você passa pela linha de comando em crontab ou inicia um script e deixa isso configure qualquer ambiente que precise.

    
por 20.07.2010 / 22:42
3

Para aplicar uma alteração bashrc a todos usuários, você pode modificar /etc/bash.bashrc (isso é para o Ubuntu).

Além disso, conforme indicado na resposta acima, verifique se esse arquivo é originado por /etc/profile .

    
por 20.07.2010 / 22:35