BASH_VERSION não definido e .bashrc não originado no shell interativo

2

Eu criei um novo usuário executando

sudo useradd -m harry

Quando tento substituir o usuário por "su-harry", tudo o que vejo é um sinal "$" (dólar), o preenchimento automático não está funcionando e os recursos internos do shell (por exemplo, origem) não estão disponíveis. / p>

Eu verifiquei .bashrc e .profile e detectei que .bashrc não está sendo originado porque $ BASH_VERSION não está definido.

O código dentro de .profile é semelhante ao seguinte:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

O comando echo $BASH_VERSION não retorna nada.

$ echo $BASH_VERSION

$ 

Os builtins do shell (fonte .bashrc, .bashrc) também não funcionam.

O valor da variável SHELL era '/ bin / sh', que é o alias do traço. Eu mudei para / bin / bash (exportação SHELL = / bin / bash) mas não teve nenhum efeito.

Quando eu codifico ".bashrc" no .profile (claro, só para verificar se funcionaria) recebo vários erros:

admin@host:~$ sudo su - harry
-su: 13: /home/harry/.bashrc: shopt: not found
-su: 21: /home/harry/.bashrc: shopt: not found
-su: 105: /home/harry/.bashrc: shopt: not found
-su: 28: /etc/bash_completion: [[: not found
-su: 34: /etc/bash_completion: [[: not found
-su: 51: /etc/bash_completion: Bad substitution
\[\e]0;\u@\h: \w\a\]\u@\h:\w$ 

Alguma idéia de como corrigir isso?

Obrigado antecipadamente. jepetko

    
por KGolbang 08.12.2013 / 20:34

2 respostas

5

O shell deste usuário é /bin/sh . Este é um shell menor, que usa menos recursos do que o bash, mas oferece menos recursos de programação e quase nenhum recurso interativo.

Execute sudo chsh -s /bin/bash harry para alterar o shell de login do usuário para bash. Isso altera a entrada do usuário em /etc/passwd (não edite esse arquivo diretamente, a menos que você saiba o que está fazendo).

A configuração da variável de ambiente SHELL diz aos aplicativos para executarem um shell diferente, mas não tem efeito no shell em execução no momento.

    
por Gilles 08.12.2013 / 21:00
0

Se você deseja criar um usuário com o bash shell por padrão, use este comando:

useradd -m -s /bin/bash <userName>

Substitua <userName> pelo nome do usuário que você deseja criar.

    
por Luís de Sousa 09.12.2013 / 11:03