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.
command-line
home-directory
Jo Rijo
la source
la source
su new_user
: Dsudo -i -u new_user
mais ça ne marche pas. Je pense que nous devons "simuler un login X" ... Je ne sais pas comment faire ça.Réponses:
Utilisez les éléments suivants (en tant que root ou avec sudo si ce n’est pas root):
Pour que cela fonctionne, le dossier
/home/username
ne doit pas exister.Pour les dossiers liés à X (Bureau, Téléchargements, etc.), vous devrez vous connecter dans un environnement graphique. ils seront automatiquement générés lors de votre première connexion.
la source
ls -l /home
. J'ai constaté que le nouveau répertoire était lisible par tous les autres utilisateurs. J'ai donc supprimé ces autorisations avecchmod go-r-x /home/username
.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:
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
:Si vous ne voyez pas le répertoire de base
/home/testinguser
ici, vous devrez exécuter la commandesudo 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 (selonuseradd
les pages de manuel de s).Je me suis ensuite déconnecté de mon compte, puis reconnecté avec
testinguser
. Voici les sous-répertoires créés automatiquement:Je n'avais pas 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.
la source
useradd
, le répertoire de base par défaut du nouvel utilisateur n'est pas défini automatiquement sur/home/username
. Donc, vous devez d’abord être sûr de cela.useradd
: "useradd utilisera le répertoire de base spécifié par la variable HOME dans/etc/default/useradd
ou/home
par défaut". La variable HOME de/etc/default/useradd
n'est pas définie par défaut, donc useradd l'utilisera toujours/home
. Quoi qu'il en soit, je vais modifier ma réponse et déplacer la partie à vérifier/etc/passwd
./bin/sh
dans la ligne utilisateur,/etc/passwd
vous devez ajouter un shell pour cet utilisateur, par exemple le shell par défaut avecusermod -s /bin/sh testuser
MISE À JOUR: La solution est brisé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
useradd
commande avec l'-m
indicateur. Cela copiera tous les fichiers du/etc/skel
répertoire.Vous devrez peut-être configurer les paramètres de votre système. Selon la page de manuel:
et indique en outre:
la source
-m
toute façon, j'ai également testé le drapeau lors de la création d'un nouvel utilisateur, mais cela n'a pas fonctionné. il ne copie que les fichiers squelettes./etc/skel
ne crée pas les sous-répertoires dans le répertoire de base. Aussi,useradd -m
est utilisé lors de la création d'un nouvel utilisateur, pas lorsque l'utilisateur est déjà ajouté.Si vous avez créé le nouvel utilisateur avec la
adduser
commande, 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/home
répertoire, 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
useradd
commande, exécutez les commandes suivantes dans le terminal:éditer le
/etc/passwd
fichier en tant que root (c'est 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: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:
Attention, ne faites pas d'autres changements.
Après avoir enregistré le fichier, avant de sortir du compte root, exécutez les commandes suivantes:
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 d’utilisateur après la création du compte?
la source
/etc/passwd
(si ce n'est déjà fait). Une fois que l'utilisateur s'est connecté, le dossier de base sera automatiquement rempli avec ces sous-répertoires. Cependant, tout cela est pris en charge si quelqu'un ajoute un utilisateur en utilisantadduser
, au lieu deuseradd
.adduser
: le dossier de départ est créé automatiquement. Et en effet, le dossier personnel sera automatiquement rempli après la première connexion.cp /etc/skel/* /home/new_username
? Aussi, y a-t-il une raison pour laquelle vous utilisez deuxchown
commandes consécutives ?Tout ce dont vous avez besoin, c’est le dossier personnel pour le faire fonctionner. En tant que root,
La première connexion devrait créer tous les fichiers nécessaires, qui semblent être ceux-ci:
la source