web-dev-qa-db-fra.com

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

Comment puis-je faire cela? J'ai créé un utilisateur sans répertoire personnel et je souhaite maintenant en créer un. Pas seulement un dossier appelé new_user, je veux le répertoire de base par défaut avec tous ses dossiers et fichiers cachés, etc.

135
Jo Rijo

Utilisez les éléments suivants (en tant que root ou avec Sudo si ce n’est pas root):

mkhomedir_helper username

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

Pour les dossiers liés à X (Bureau, Téléchargements, etc.), vous devez vous connecter dans un environnement graphique. ils seront automatiquement générés lors de votre première connexion.

212
kavadias

Les sous-répertoires (documents, téléchargements, etc.) sont automatiquement créés lors de la première connexion de l'utilisateur 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 
 Entrez le nouveau mot de passe UNIX: 
 Retapez le nouveau mot de passe UNIX: 
 Passwd: le mot de passe a été mis à jour avec succès 
.alaa @ aa-lu: ~ $ Sudo ls -l /home
total 20 
 Drwxr-xr-x 55 alaa alaa 4096 août 22 22:00 alaa 
 Drwx ------ 2 racine racine 16384 juin 5 09h46 perdu + trouvé 
alaa @ aa-lu: ~ $ Sudo mkdir /home/testinguser
alaa @ aa-lu: ~ $ Sudo chown testuser: testinguser /home/testinguser
alaa @ aa-lu: ~ $ ls -l /home
total 24 
 drwxr-xr-x 55 alaa alaa 4096 août 22 22:00 alaa 
 drwx ------ 2 racine racine 16384 5 juin 09:46 lost + found 
 Drwxr-xr-x 2 testuser testinguser 4096 23 août 10:03 testuser 
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. Par défaut, vous devriez voir le répertoire de base défini sur /home/testinguser:

alaa @ aa-lu: ~ $ grep testuser /etc/passwd
testinguser:x:1001:1001 ::/ home/testuser:/bin/sh 

Si vous ne voyez pas le répertoire personnel /home/testinguser ici, vous devrez exécuter la commande Sudo usermod -d /home/testinguser testinguser pour le mettre à jour, bien que vous ne deviez pas utiliser cette commande car elle devrait être définie par défaut (conformément à la page de manuel de useradd).

Je me suis ensuite déconnecté de mon compte et me suis reconnecté avec testinguser. 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 Bureau 
 drwxr-xr-x 2 testinguser testinguser 4096 août 23 10:05 Documents 
 Drwxr-xr-x 2 testuser testinguser 4096 23 août 10:05 Téléchargements 
 Drwxr-xr-x 2 testinguser testuser 4096 23 août 10:05 Musique 
 drwxr-xr-x 2 testinguser testinguser 4096 23 août 10:07 Images 
 drwxr-xr-x 2 testinguser testuser 4096 23 août 10:05 Public 
 drwxr-xr-x 2 testinguser testinguser 4096 août 23 10:05 Modèles 
 Drwxr-xr-x 2 testuser testinguser 4096 Aug 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 pour créer un autre 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 n'a pas fonctionné avec vous, alors je suppose que c'est un bug.

33
Alaa Ali

PDATE: 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 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.
12
crafter

Si vous avez créé le nouvel utilisateur avec la commande addusername__, vous n'avez pas besoin de créer un répertoire de base pour le nouvel utilisateur. Un répertoire de base 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 useraddname__, exécutez les commandes suivantes dans le terminal:

Sudo -i     #enter your user password when you are asked
gedit /etc/passwd

éditer le fichier /etc/passwd en tant que root (il s’agit de l’étape la plus importante). Recherchez 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

Sur cette ligne, vous pouvez également ajouter un nom réel au 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 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: Comment créer un dossier personnel après la création du compte?

5
Radu Rădeanu

Tout ce dont vous avez besoin, c’est le dossier personnel pour le faire fonctionner. En tant que root,

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

Se connecter avec la première fois devrait créer tous les fichiers nécessaires, qui semblent être ceux-ci:

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
3
fotanus