Saisie semi-automatique pour nouvel utilisateur


11

J'ai ajouté un nouvel utilisateur Linux en faisant un

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

J'ai testé le compte en me connectant au serveur avec la commande suivante

ssh newuser@mywebsite.com

Après la connexion, le shell ne me laisse pas faire la saisie semi-automatique de l'onglet. Par exemple, je taperais / var / www / myweb {tab}, mais le bouton de tabulation n'entre qu'un espace dans le shell. De plus, appuyer sur les touches fléchées haut et bas ne me donne pas les commandes shell les plus récentes entrées.

Tout fonctionne parfaitement lorsque je me connecte en tant que root. Mais cela ne fonctionne pas lorsque je me connecte en tant que nouvel utilisateur.

Ai-je oublié quelque chose?

Merci

Réponses:


33

Vérifiez quel shell 'newuser' utilise. Assurez-vous que c'est celui qui prend en charge la complétion des onglets (comme bash ou zsh).

Vous pouvez déterminer quel shell l'utilisateur utilise à l'aide de la commande suivante

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

Vous pouvez modifier le shell des utilisateurs à l'aide de la commande chsh

# chsh -s /bin/bash rodjek

super, ça a marché!
John

2

La saisie semi-automatique de l'onglet système est ajoutée par:

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

dans .bashrc. Bashrc n'est pas créé pour les nouveaux utilisateurs car il n'existe pas dans / etc / skel. Créez .bashrc dans / etc / skel avec le code ci-dessus et cela fonctionnera pour les nouveaux utilisateurs. Copiez ensuite le fichier vers le nouvel utilisateur que vous venez de créer pour qu'il fonctionne également pour eux.


1

avez-vous vérifié que votre nouvel utilisateur a le même shell que votre utilisateur root? Il semble que votre utilisateur root ait bash votre quelque chose comme ça et votre nouvel utilisateur a un ksh ou quelque chose de similaire. Jetez un œil au fichier / etc / passwd ou à la variable d'environnement SHELL.


1

Lorsque vous ajoutez un utilisateur avec useraddaucun shell spécial n'est ajouté.
Vous pouvez le voir avec la commande:cat /etc/passwd

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

Vous pouvez voir que l'utilisateur test1a un shell de /bin/bashmais l'utilisateur test3n'a pas de shell ajouté.

Pour résoudre ce problème, vous pouvez modifier le shell de l'utilisateur test3avec cette commande:

chsh -s /bin/bash test3

Ou lorsque vous créez un nouvel utilisateur, vous pouvez utiliser l'option s:

useradd -s /bin/bash test4

0

Le dossier /var/www/mywebsite.com existait-il avant de créer le compte?

Pouvez-vous vérifier que le contenu de / etc / skel est copié dans le répertoire personnel /var/www/mywebsite.com?

Le nouveau compte a-t-il obtenu un autre shell qui ne prend pas en charge la saisie semi-automatique?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.