Tab Autocomplete for New User
I added a new linux user by doing a
useradd -d /var/www/mywebsite.com -m newuser
passwd newuser
I tested the account by logging into the server with the following command
ssh [email protected]
After login, the shell doesn't let me do tab autocomplete. For example, I would type /var/www/myweb{tab}, but the tab button only enters a space into the shell. Also, pressing the up and down arrow keys does not give me the most recent shell commands entered.
Everything works perfectly when I ssh login as root. But it doesn't work when I ssh login as newuser.
Did I miss something?
Thanks
Solution 1:
Check what shell 'newuser' is using. Make sure it's one that actually supports tab completion (like bash or zsh).
You can determine what shell the user is using using the following command
# getent passwd rodjek
rodjek:x:1001:1001:x:/home/rodjek:/bin/zsh
You can change the users shell using the chsh command
# chsh -s /bin/bash rodjek
Solution 2:
When you add a user with useradd
there is no special shell added.
You can see this with the command:cat /etc/passwd
test1:x:1004:1005:,,,:/home/test1:/bin/bash
test3:x:1007:1008::/home/test3:
You can see that the user test1
has a shell of /bin/bash
but the user test3
has no shell added.
To fix this you can change the shell of user test3
with this command:
chsh -s /bin/bash test3
Or when you create a new user you can use the s option:
useradd -s /bin/bash test4