bash NÃO está lendo .bashrc no RHEL 6

0

máquina A --RHEL 7 e atualizada.
máquina B - RHEL 6 e atualizada.

Se eu fizer isso em A (RHEL 7)

ssh B

Eu entro, como deveria, mas meu .bashrc NÃO foi executado. Este é um novo comportamento para mim. Eu quero meu .bashrc para ser executado a máquina B (RHEL 6). Eu fiz diffs no /etc/ssh/sshd_config e /etc/ssh/ssh_config , e eles são diferentes, mas não vejo por que estes devem importar.

ssh_config difere apenas por espaço em branco e comentários.

Sim, eu vi as coisas, mas mesmo assim, isso atrapalhou o resultado do diff por causa do menor que / maior que o existente. Há algo lá que eu deveria me importar? Eu hackeei e reduzi, além do espaço em branco, comentários e ambiente variável ( AcceptEnv ) aqui é o que o diff resumiu.

o lado 6

Protocol 2

o lado 7

HostKey /etc/ssh/ssh_host_ecdsa_key
AuthorizedKeysFile  .ssh/authorized_keys
UsePrivilegeSeparation sandbox

Então, onde eu procuro para descobrir por que meu .bashrc não é executado? Meu .profile , novamente:

alias lo='exit'
alias l='ls -CF'
alias ..='cd ..'

e meu .bashrc :

PRINTER=its1
export PRINTER


DISPLAY=jgs:0.0
export DISPLAY

PATH=/usr/bin:/usr/sbin:/bin:/sbin:/opt/bin:/home/gl/bin:.

export PATH

PROXY=whiteproxy.arlut.utexas.edu:3128
export PROXY

cd /home/gl

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

/etc/bashrc é o estoque.

    
por Mikel 02.12.2014 / 21:40

3 respostas

1

O arquivo ~ / .bashrc nem sempre é lido: veja Bash Startup Arquivos no manual.

Seu ~ / .bash_profile (ou ~ / .profile) invoca seu arquivo .bashrc? Geralmente isso aparece nos arquivos .profile:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi
    
por 02.12.2014 / 23:00
1

Talvez a documentação seja confusa, mas o comportamento padrão do Bash é originar seu "perfil" (.bash_profile, .bash_login, .profile, o que encontrar primeiro nessa ordem) em shells de login interativo e .bashrc em shells interativos não-login.

O sshd normalmente gera um shell de login onde a abertura de uma janela do terminal X11 é tipicamente um shell de não-login.

Portanto, você não deve esperar que o seu .bashrc seja lido quando você estiver em uma máquina.

Dito isso, geralmente recomendo que os usuários adicionem uma linha como a seguinte ao "perfil"

[[ -r ~/.bashrc ]] &&  source ~/.bashrc

Por fim, o / etc / bashrc nunca é lido diretamente por Bush e você não encontrará nenhuma menção a ele na página man do bash. É um arquivo que o RedHat adicionou e a expectativa é que o seu arquivo ~ / .bashrc irá obtê-lo. O ~ / .bashrc padrão que deveria estar no seu diretório pessoal quando sua conta foi criada, deveria estar fazendo isso. Caso contrário, você deve encontrar um exemplo no diretório / etc / skel.

    
por 17.09.2016 / 02:06
0

No final, eu obtive o .bashrc do .profile . Para mim, isso significa que .profile deve estar vazio, exceto pela execução de .bashrc para evitar referências circulares e outras confusões.

Como li na man page, sshd deveria ter chamado o .bashrc , mas, bem, eu tenho uma solução alternativa.

    
por 03.12.2014 / 20:49