web-dev-qa-db-fra.com

"Impossible de chdir vers le répertoire personnel / home / moi: aucun fichier ou répertoire de ce type"

J'utilise 12.04 sur mon serveur.

J'ai créé un nouvel utilisateur à l'aide de adduser me et passwd me et je l'ai ajouté à Sudo.

Quand je me connecte, c'est ce que je vois.

Could not chdir to home directory /home/me: No such file or directory    
$

Je tape bash et ça commence à avoir l'air "normal"

$ bash
me@server:/$

Comment puis-je éviter de saisir bash chaque fois que je me connecte?

12
ddd

adduser est trop basique et ne définit pas les valeurs par défaut correctement. Il est recommandé d'utiliser useradd chaque fois que cela est possible. Vous pouvez supprimer le nouvel utilisateur et le recréer avec useradd -D me ou le réparer vous-même:

Sudo mkdir /home/me
Sudo usermod --Shell /bin/bash --home /home/me me
Sudo chown -R me:me /home/me
cp /etc/skel/.* /home/me/

Si vous aviez utilisé getent passwd me comme suggéré par Florian, vous devriez avoir vu quelque chose comme ceci:

Sudo getent passwd me
boggus:x:1002:1002::/home/me:/bin/sh

Et ls /home n'aurait pas montré le répertoire de l'utilisateur comme erreur:

Could not chdir to home directory /home/me: No such file or directory
21
Braiam

Vous pouvez définir le répertoire de base de l'utilisateur avec la commande usermod -d _homedir_ username.

Par exemple:

usermod -d / sudouser

définit le répertoire racine de sudouserdans le répertoire racine.

Cependant, le répertoire racine n’est pas un bon choix ici, surtout si vous vous connectez avec l’utilisateur à un shell interactif. Les shells peuvent créer leurs propres fichiers lorsque vous vous connectez et tout fichier supplémentaire au niveau racine n’est pas une bonne chose.

2
M.A.K. Ripon