J'essaie de comprendre l'administration système sur Ubuntu. Donc, à titre d'exemple, je crée un utilisateur factice en utilisant
sudo useradd -d /home/linda linda
et passwd
créer le mot de passe. Je vérifie qu’une entrée a été faite en utilisantcat /etc/passwd
linda:x:1004:1004::/home/linda:/bin/sh
Cependant, quand su - linda
je reçois
No directory, logging in with HOME=/
et en effet, aucun répertoire personnel n'a été créé. Qu'est-ce que je rate?
Merci.
command-line
bash
users
home-directory
tchakravarty
la source
la source
adduser
mais le répertoire personnel créé ne contient toujours qu'un fichierexamples.desktop
et rien d'autre. Comment puis-je obliger Ubuntu à créer les dossiers par défaut Bureau, Téléchargements, etc.? (Je suis connecté via ssh)adduser
ne créera pas le répertoire non plus si quelqu'un a changé CREATE_HOME dans /etc/login.defs en "non". Vous pouvez remplacer ceci avec le-m
drapeau.vous pouvez résoudre ce problème simplement en créant le répertoire home.
essayez de vous connecter à nouveau et cela devrait fonctionner.
la source
Selon
man useradd
, l'-d /home/linda
option ne créera pas le répertoire/home/linda
s'il manque. Donc, vous devez le créer manuellement. Pour ce faire, exécutez les commandes suivantes dans le terminal:Voir aussi: Comment créer un dossier de départ pour l'utilisateur après la création du compte?
la source
Regardez
/etc/defaults/useradd
si vous voulez changer les valeurs par défaut. Utilisation:useradd -m -d /home/joe -s /bin/bash
.la source
-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. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.
@astrojuanluVous pouvez également modifier
/etc/pam.d/common-session
pour faire en sorte que le répertoire de base d'un utilisateur soit créé lors de la première connexion. Ajoutez la ligne suivante à ce fichier.Ceci est particulièrement utile si votre système est sur un réseau où les utilisateurs sont gérés en externe sur votre ordinateur, par exemple par LDAP.
la source
Utilisez à la
-m
place de-d
, donc le répertoire sera créé pour vous:sudo useradd -m linda
De plus, si
linda
c'est un utilisateur normal, vous voudrez peut-être qu'elle utilise/bin/bash
par défautshell
:sudo useradd -m linda -s /bin/bash
la source
Ajoutez l'entrée ci-dessous dans
/etc/login.defs
et enregistrez:Maintenant, essayez de créer des comptes d'utilisateurs. Cela créera le répertoire personnel.
la source
Utilisez
adduser
.useradd
vous devez ajouter toutes les options vous-même. Y compris les autorisations et quelques autres choses.adduser
Est-ce que cela est basé sur des valeurs par défaut sane (et ajoute également le répertoire home par lui-même)Si vous devez utiliser adduser, vous aurez probablement besoin de l'option -b avec l'option -d!
la source
Si
/home/linda
n'est pas présent avant d'ajouter linda en tant qu'utilisateur, vous devrez également ajouter--create-home
.la source
La raison la plus probable pour laquelle vous n'avez pas créé le répertoire de base est parce que vous n'aviez pas le fichier
CREATE_HOME yes
in/etc/login.defs
.Vous pouvez résoudre ce problème en suivant les suggestions de @OmPS ou de @Radu Rădeanu.
Mais autant de façons de surmonter ce problème à l'avenir en utilisant l'une des commandes ci-dessous:
Résultat de
sudo adduser linda
Les valeurs par défaut pour adduser sont choisies à partir de
/etc/adduser.conf
si l'--home
option n'est pas spécifiée. Notez qu'il copie également le/etc/skel
contenu.Utilisez adduser avec
--home
Identique à l'option précédente, sauf que vous souhaiterez peut-être utiliser cette option si le répertoire de base des utilisateurs est différent du nom d'utilisateur que vous avez attribué.
Spécifiez le répertoire de base à
useradd
commander:Utilisez login.defs: Modify
/etc/login.defs
et ajoutez la ligne ci-dessous avant de fairesudo useradd
:Remarque: si vous le faites
man login.defs
, il est actuellement indiquéUne grande partie des fonctionnalités auparavant fournies par la suite de mots de passe shadow sont désormais gérées par PAM. Ainsi, /etc/login.defs n'est plus utilisé par passwd (1), ou moins par login (1) et su (1). Veuillez plutôt vous reporter aux fichiers de configuration PAM correspondants.
Utilisez le module pam_mkhomedir PAM: à partir de la
man pam_mkhomedir
page, ajoutez la ligne ci-dessous à/etc/pam.d/login
:la source