Créer un répertoire personnel par défaut pour l'utilisateur existant dans le terminal

116

Comment puis-je le faire? 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.

    
posée Jo Rijo 22.08.2013 - 20:54
la source

5 réponses

174

Utilisez ce qui suit (en tant que root ou avec sudo si pas root):

mkhomedir_helper username

Pour que cela fonctionne, le dossier /home/username ne doit pas exister.

Pour les dossiers liés à X (Desktop, Downloads, etc.), vous devrez vous connecter dans un environnement graphique; ils seront automatiquement générés lors de votre première connexion.

    
réponse donnée kavadias 05.11.2014 - 20:48
la source
31

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 de base soit créé avec les autorisations appropriées. Voici une démonstration:

alaa@aa-lu:~$ sudo useradd testinguser
alaa@aa-lu:~$ sudo passwd testinguser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
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 de base 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 sur /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 de base /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 de cette commande car elle doit être définie par défaut vers les pages de manuel de useradd ).

Je me suis alors déconnecté de mon compte et je 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 testinguser testinguser 4096 Aug 23 10:05 Documents
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Music
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:07 Pictures
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Public
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Templates
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Videos

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 nouvel utilisateur? Une fois que vous avez terminé, vous pouvez supprimer ce nouvel utilisateur de sudo deluser testinguser && sudo rm -r /home/testinguser .

Si tout cela ne fonctionnait pas avec vous, alors je suppose que c'est un bogue.

    
réponse donnée Alaa Ali 23.08.2013 - 08:22
la source
12

MISE À JOUR: La solution est cassée et ne fonctionne pas pour moi aussi.

Si vous souhaitez créer le répertoire de base de l'utilisateur s'il n'existe pas, exécutez la commande useradd avec l'indicateur -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 plus loin:

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.
    
réponse donnée crafter 22.08.2013 - 21:54
la source
4

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), car le nouvel utilisateur sera créé automatiquement.

Si vous avez créé le nouvel utilisateur avec la commande useradd , exécutez ensuite 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 suit:

new_username:x:1001:1001::/home/new_username:/bin/sh

À cette ligne, vous pouvez également ajouter un vrai nom pour le nouvel utilisateur ou définir le shell par défaut. Quelque chose comme ça:

new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash

Attention, ne faites aucune autre modification.

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 /etc/skel/* /home/new_username                             #to copy copy files from the /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, le dossier personnel du nouvel utilisateur sera automatiquement renseigné après la première connexion.

Voir aussi: Comment créer un dossier personnel après un compte création?

    
réponse donnée Radu Rădeanu 22.08.2013 - 21:18
la source
3

Tout ce dont vous avez besoin est vraiment le dossier d’accueil pour le faire fonctionner. En tant que root,

cd /home
cd mkdir username
chown username username
chgrp username username

Lorsque vous vous connectez pour la première fois, vous devez créer tous les fichiers nécessaires, qui semblent être ceux:

drwxr-xr-x 16 fotanus fotanus 4096 Jun  4 17:46 .
drwxr-xr-x  9 root    root    4096 Jun  4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun  4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun  4 17:46 .config
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Desktop
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Documents
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Downloads
drwx------  3 fotanus fotanus 4096 Jun  4 17:46 .gconf
drwxrwxr-x  2 fotanus fotanus 4096 Jun  4 17:46 .gstreamer-0.10
-rw-------  1 fotanus fotanus  334 Jun  4 17:45 .ICEauthority
drwxr-xr-x  3 fotanus fotanus 4096 Jun  4 17:45 .local
drwx------  4 fotanus fotanus 4096 Jun  4 17:45 .mozilla
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Music
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Pictures
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Public
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Templates
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Videos
-rw-------  1 fotanus fotanus   55 Jun  4 17:45 .Xauthority
-rw-------  1 fotanus fotanus  711 Jun  4 17:45 .xsession-errors
    
réponse donnée fotanus 04.06.2014 - 22:49
la source

Lire d'autres questions sur les étiquettes