Como definiu o PATH para todos os usuários no Debian?

21

Eu tenho um servidor Debian Lenny, e eu gostaria que o usuário www-data tivesse /usr/local/zend/bin em seu PATH, então ele pode executar um script no cron como www-data .

Como eu adiciono /usr/local/zend/bin ao PATH, então www-data pode executar arquivos em /usr/local/zend/bin ?

    
por Sandra 02.08.2010 / 20:26

3 respostas

36

O primeiro local em que o PATH está definido é /etc/login.defs . Há uma configuração para raiz e uma configuração para todos os outros.

Outro local onde você pode definir variáveis de ambiente é /etc/environment . Essas configurações serão aplicadas a todos (você não pode escrever código de shell arbitrário).

Um terceiro lugar onde você pode definir variáveis de ambiente é /etc/profile . Lá você pode escrever código shell arbitrário. Se você quiser uma configuração específica do usuário, há o arquivo por usuário correspondente ~www-data/.profile . Mas isso só se aplica aos logons interativos do console; em particular, não se aplicará a tarefas agendadas, a menos que forneçam explicitamente /etc/profile .

Se você precisar apenas da configuração PATH em um crontab de usuário, poderá escrevê-lo no início do crontab. Note que você precisa da lista completa ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin ), você não pode usar uma substituição de variável ( PATH=$PATH:/usr/local/zend/bin não funcionará lá).

    
por 02.08.2010 / 21:11
5

Para definir um caminho para todos os usuários, exceto root, edite / etc / profile ou / etc / enviroment. Para raiz ou um usuário individual, edite seus .bashrc ou .bash_profile em seus diretórios iniciais, respectivamente. Adicione o PATH = $ PATH: / new / location /.

    
por 02.08.2010 / 20:41
0

Para definir o var para todos os usuários sem sobrecarregar o profile , você pode adicionar seu próprio script pequeno no diretório /etc/profile.d da seguinte forma:

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

Em seguida, relogar.

    
por 11.09.2018 / 15:06