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 [email protected]

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

John
fonte

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
rodjek
fonte
ó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.

WheresAlice
fonte
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.

cristão
fonte
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
RenRen
fonte
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?

Zoredache
fonte