Usuário recém-criado no Ubuntu Server tem o prompt de shell errado

5

Eu criei um novo usuário no Ubuntu 18.04.01 assim:

sudo useradd svn
sudo passwd svn
sudo mkhomedir_helper svn
sudo usermod -d /home/svn -m svn

O problema é que, se eu alternar para o usuário por su svn , não vejo um comando de prompt padrão. Em vez do prompt padrão:

svn@svn-server:/srv/svn/$

Eu vejo apenas:

$

apesar do conteúdo do arquivo /home/svn/.bashrc . E neste prompt "aleijado" eu também não posso usar a tecla TAB para autocompletar caminhos.

Se eu executar echo $PS1 como svn user, recebo um resultado vazio.

Como posso consertar este usuário?

    
por zdenek 01.11.2018 / 10:43

3 respostas

16

Verifique o shell que você atribuiu. Se você usou o comando useradd no Ubuntu 18, o shell de login padrão será /bin/sh e você obterá a saída como mencionou. Você pode alterar o shell de login executando o comando:

sudo usermod -s /bin/bash svn
    
por 01.11.2018 / 10:48
2

Se você quiser que TODOS os novos usuários usem o mesmo shell, você pode definir isso usando /etc/default/useradd . Altere a configuração SHELL para refletir o caminho para o binário do shell que você deseja usar. Por exemplo, o meu parece:

HOME=/home
SHELL=/bin/zsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

Também vale a pena observar que você pode usar o diretório nomeado em sua configuração SKEL para definir quais arquivos devem ser copiados no diretório inicial de um novo usuário por padrão. No meu caso, eu tenho um arquivo .zshrc contendo configurações zsh que eu quero para todos os novos usuários.

Use esses dois arquivos para definir padrões para todos os novos usuários.

    
por 01.11.2018 / 19:00
0

Você pode alterar o shell como o novo usuário:

$ chsh
Changing shell for svn.
New shell [/bin/sh]: /bin/bash
Password: ****
Shell changed.

Pode haver outro trabalho de limpeza, por exemplo, se a conta não tiver partes do conteúdo "esqueleto" esperado. Você menciona ~/.bashrc , então talvez isso não seja um problema aqui.

    
por 01.11.2018 / 18:38