Autocomplete da guia para novo usuário

8

Eu adicionei um novo usuário linux fazendo um

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

Eu testei a conta fazendo login no servidor com o seguinte comando

ssh [email protected]

Após o login, o shell não permite o preenchimento automático da guia. Por exemplo, eu digitaria / var / www / myweb {tab}, mas o botão de tabulação só entra em um espaço no shell. Além disso, pressionar as teclas de seta para cima e para baixo não me fornece os comandos shell mais recentes inseridos.

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

Eu senti falta de algo?

Obrigado

    
por John 05.01.2010 / 22:11

5 respostas

25

Verifique qual shell 'newuser' está usando. Certifique-se de que seja realmente compatível com a conclusão da tabulação (como bash ou zsh).

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

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

Você pode alterar o shell dos usuários usando o comando chsh

# chsh -s /bin/bash rodjek
    
por 05.01.2010 / 22:18
2

No separador de sistema, o preenchimento automático é adicionado por:

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

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

    
por 05.01.2010 / 22:20
1

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

    
por 05.01.2010 / 22:17
1

Quando você adiciona um usuário com useradd , não há nenhum 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 test1 tem um shell de /bin/bash , mas o usuário test3 não tem shell adicionado.

Para corrigir isso, você pode alterar o shell do usuário test3 com 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
    
por 26.06.2018 / 10:29
0

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

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

A nova conta recebeu um shell diferente que não é compatível com o preenchimento automático?

    
por 05.01.2010 / 22:17

Tags