Comment dois-je m'y prendre ? J'ai créé un utilisateur sans répertoire personnel et maintenant je veux en créer un. Pas seulement un dossier appelé new_user, je veux le répertoire personnel par défaut avec tous ses dossiers et fichiers cachés, etc.
Les sous-répertoires (Documents, Téléchargements, etc...) sont automatiquement créés lorsque l'utilisateur se connecte pour la première fois via GNOME, à condition que le répertoire personnel soit créé avec les bonnes permissions. Voici une démonstration :
alaa@aa-lu:~$ sudo useradd testinguser alaa@aa-lu:~$ sudo passwd testinguser Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : mot de passe mis à jour avec succès alaa@aa-lu:~$ sudo ls -l /home total 20 drwxr-xr-x 55 alaa alaa 4096 Aug 22 22:00 alaa drwx------ 2 root root 16384 Jun 5 09:46 lost+found alaa@aa-lu:~$ sudo mkdir /home/testinguser alaa@aa-lu:~$ sudo chown testinguser:testinguser /home/testinguser alaa@aa-lu:~$ ls -l /home total 24 drwxr-xr-x 55 alaa alaa 4096 Aug 22 22:00 alaa drwx------ 2 root root 16384 Jun 5 09:46 lost+found drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:03 testinguser alaa@aa-lu:~$ ls -l /home/testinguser/ total 0 alaa@aa-lu:~$
Vous pouvez vérifier que le répertoire personnel de l'utilisateur est correctement défini en vérifiant l'entrée dans /etc/passwd
. Vous devriez, par défaut, voir le répertoire personnel défini à /home/testinguser
:
alaa@aa-lu:~$ grep testinguser /etc/passwd testinguser:x:1001:1001::/home/testinguser:/bin/sh
Si vous ne voyez pas le répertoire personnel /home/testinguser
, vous devrez exécuter la commande sudo usermod -d /home/testinguser testinguser
pour le mettre à jour, bien que vous ne devriez pas avoir besoin d'utiliser cette commande car elle devrait être définie par défaut (selon les pages de manuel de useradd
's).
Je me suis ensuite déconnecté de mon compte, et me suis reconnecté avec testinguser
, et voici les sous-répertoires créés automatiquement :
alaa@aa-lu:~$ ls -l /home/testinguser/ total 36 drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:05 Documents drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:05 Téléchargements drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:05 Musique drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:07 Images drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:05 Public drwxr-xr-x 2 utilisateur de test utilisateur de test 4096 Août 23 10:05 Modèles drwxr-xr-x 2 testinguser testinguser 4096 Août 23 10:05 Vidéos
Je n'ai pas eu besoin de copier le contenu de /etc/skel
.
Si possible, pouvez-vous essayer de suivre ces étapes, en créant un autre nouvel utilisateur ? Une fois que vous avez terminé, vous pouvez supprimer ce nouvel utilisateur par sudo deluser testinguser && ; sudo rm -r /home/testinguser
.
Si tout cela n'a pas fonctionné avec vous, alors je suppose qu'il s'agit d'un bogue.
MISE À JOUR : La solution est cassée et ne fonctionne pas pour moi non plus.
Si vous voulez créer le répertoire personnel de l'utilisateur s'il n'existe pas, exécutez la commande useradd
avec l'option -m
. Cela copiera tous les fichiers du répertoire /etc/skel
.
useradd -m username
Vous devrez peut-être configurer les paramètres de votre système. Selon la page de manuel :
-m, --create-home
Create the user's home directory if it does not exist. The files and directories
contained in the skeleton directory (which can be defined with the -k option)
will be copied to the home directory.
By default, if this option is not specified and CREATE_HOME is not enabled, no
home directories are created.
et indique en outre :
CONFIGURATION
The following configuration variables in /etc/login.defs change the behavior
of this tool:
CREATE_HOME (boolean)
Indicate if a home directory should be created by default for new users.
Si vous avez créé le nouvel utilisateur avec la commande adduser
, vous n'avez pas besoin de créer un répertoire personnel pour le nouvel utilisateur. Un répertoire personnel nommé avec le nom de l'utilisateur dans le répertoire /home
, avec les sous-répertoires suivants : Bureau, Téléchargements, Documents, Musique, Images, Vidéos (et autres), pour le nouvel utilisateur sera créé automatiquement.
Si vous avez créé le nouvel utilisateur avec la commande useradd
, alors exécutez les commandes suivantes dans le terminal :
sudo -i #enter your user password when you are asked
gedit /etc/passwd
pour éditer le fichier /etc/passwd
en tant que root (c'est l'étape la plus importante). Trouvez la ligne avec le nom du nouvel utilisateur et définissez le répertoire de base par défaut pour lui comme ceci :
new_username:x:1001:1001::/home/new_username:/bin/sh
A cette ligne, vous pouvez également ajouter un nom réel pour le nouvel utilisateur, ou définir le shell par défaut. Quelque chose comme ceci :
new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash
Attention, ne faites pas d’autres changements.
Après avoir enregistré le fichier, avant de sortir du compte root, exécutez les commandes suivantes :
mkdir /home/new_username #to create the directory /home/new_username
cp -r /etc/skel/. /home/new_username #to copy skeleton files to /home/new_username
chown -R new_username:new_username /home/new_username #to change the owner of /home/new_username to the new user
Après tout cela, le dossier personnel du nouvel utilisateur sera automatiquement rempli après la première connexion.
Voir aussi : https://askubuntu.com/questions/152707/how-to-make-user-home-folder-after-account-creation