Guia Preenchimento automático para novo usuário


11

Eu adicionei um novo usuário linux fazendo um

useradd -d /var/www/mywebsite.com -m newuser
passwd newuser

Testei a conta efetuando login no servidor com o seguinte comando

ssh newuser@mywebsite.com

Após o login, o shell não me permite preencher automaticamente a guia. Por exemplo, eu digitaria / var / www / myweb {tab}, mas o botão tab digita apenas um espaço no shell. Além disso, pressionar as teclas de seta para cima e para baixo não fornece os comandos shell mais recentes inseridos.

Tudo funciona perfeitamente quando eu ssh login como root. Mas isso não funciona quando eu ssh login como newuser.

Perdi alguma coisa?

obrigado

Respostas:


33

Verifique qual shell 'newuser' está usando. Certifique-se de que ele realmente suporta a conclusão de guias (como bash ou zsh).

Você pode determinar qual shell o usuário está usando usando o seguinte comando

# getent passwd rodjek
rodjek:x:1001:1001:x:/home/rodjek:/bin/zsh

Você pode alterar o shell do usuário usando o comando chsh

# chsh -s /bin/bash rodjek

ótimo, isso funcionou!
John

2

Na guia sistema, o preenchimento automático é adicionado por:

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

em .bashrc. O Bashrc não foi criado para novos usuários, pois não existe no / etc / skel. Crie .bashrc em / etc / skel com o código acima e ele funcionará para novos usuários. Em seguida, copie o arquivo para o novo usuário que você acabou de criar, para que funcione também para eles.


1

você verificou que seu novo usuário tem o mesmo shell que seu usuário root? Parece que seu usuário root bateu com algo parecido e seu novo usuário possui um ksh ou algo semelhante. Dê uma olhada no arquivo / etc / passwd ou na variável de ambiente SHELL.


1

Quando você adiciona um usuário, useraddnão há shell especial adicionado.
Você pode ver isso com o comando:cat /etc/passwd

test1:x:1004:1005:,,,:/home/test1:/bin/bash
test3:x:1007:1008::/home/test3:

Você pode ver que o usuário test1possui um shell, /bin/bashmas ele test3não possui um shell adicionado.

Para corrigir isso, você pode alterar o shell do usuário test3com este comando:

chsh -s /bin/bash test3

Ou, quando você cria um novo usuário, pode usar a opção s:

useradd -s /bin/bash test4

0

A pasta /var/www/mywebsite.com existia antes de você criar a conta?

Você pode verificar se o conteúdo do / etc / skel é copiado para o diretório inicial /var/www/mywebsite.com?

A nova conta recebeu um shell diferente que não suporta o preenchimento automático?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.