web-dev-qa-db-fra.com

Lorsque je crée deux utilisateurs avec le même UID et GUID mais des répertoires de départ différents, mon 17.10 Ubuntu ne parvient pas à démarrer, pourquoi?

Je veux pouvoir me connecter avec des paramètres différents, tout en restant le même "utilisateur". J'ai donc ajouté un deuxième utilisateur avec le même UID/GUID, mais un répertoire de départ différent et maintenant, lors du démarrage d'Ubuntu, le système se bloque. Si je supprime le deuxième utilisateur des fichiers passwd et shadow, le système démarre parfaitement.

3
intel_chris

Il est généralement déconseillé d’éditer manuellement les fichiers _/etc/passwd_ et _/etc/shadow_. Je recommande d'utiliser les outils système fournis pour cela. À côté de cela, même si vous pouvez faire partager le même GUID avec un autre utilisateur, l'UID doit être unique pour chaque utilisateur. Par conséquent, le démarrage échouera probablement avec Linux empêchant ainsi le démarrage des applications nécessaires et/ou en cas d'échec des applications dans lesquelles les UID seraient uniques.

Une meilleure approche de deux utilisateurs partageant un répertoire utilise la gestion de groupe pour le faire. Voir la documentation sur la gestion des utilisateurs ou parcourir Ask Ubunt pour les guides possibles:


Cependant, vous pouvez créer un utilisateur en émettant simplement la commande suivante:

_Sudo useradd -U -m -G <additional groups here> <user-name>
_

Cela va ajouter un utilisateur à votre système qui fonctionnera. Explication de la ligne ci-dessus de man 8 useradd (extrêmement réduit aux seules options les plus courantes, pour une vue d'ensemble complète, voir la page de manuel):

LES OPTIONS

_   The options which apply to the useradd command are:

   -c, --comment COMMENT
       Any text string. It is generally a short description of the login,
       and is currently used as the field for the user's full name.

   -g, --gid GROUP
       The group name or number of the user's initial login group. The
       group name must exist. A group number must refer to an already
       existing group.

       If not specified, the behavior of useradd will depend on the
       USERGROUPS_ENAB variable in /etc/login.defs. If this variable is
       set to yes (or -U/--user-group is specified on the command line), a
       group will be created for the user, with the same name as her
       loginname. If the variable is set to no (or -N/--no-user-group is
       specified on the command line), useradd will set the primary group
       of the new user to the value specified by the GROUP variable in
       /etc/default/useradd, or 100 by default.

   -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
       A list of supplementary groups which the user is also a member of.
       Each group is separated from the next by a comma, with no
       intervening whitespace. The groups are subject to the same
       restrictions as the group given with the -g option. The default is
       for the user to belong only to the initial group.

   -k, --skel SKEL_DIR
       The skeleton directory, which contains files and directories to be
       copied in the user's home directory, when the home directory is
       created by useradd.

       This option is only valid if the -m (or --create-home) option is
       specified.

       If this option is not set, the skeleton directory is defined by the
       SKEL variable in /etc/default/useradd or, by default, /etc/skel.

       If possible, the ACLs and extended attributes are copied.

   -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.

   -M
       Do no create the user's home directory, even if the system wide
       setting from /etc/login.defs (CREATE_HOME) is set to yes.

   -s, --Shell SHELL
       The name of the user's login Shell. The default is to leave this
       field blank, which causes the system to select the default login
       Shell specified by the Shell variable in /etc/default/useradd, or
       an empty string by default.

   -U, --user-group
       Create a group with the same name as the user, and add the user to
       this group.

       The default behavior (if the -g, -N, and -U options are not
       specified) is defined by the USERGROUPS_ENAB variable in
       /etc/login.defs.
_

Donc _-U_ créera un groupe d'utilisateurs similaire au nom d'utilisateur ayant le GUID correspondant à l'UID de l'utilisateur. _-m_ créera le répertoire de base des utilisateurs dans _/home/<user-name>_ et _-G_ vous permet d'indiquer des groupes supplémentaires auxquels cet utilisateur doit appartenir. Vous pouvez aussi ajouter des groupes plus tard. Les groupes qu'Ubuntu ajoute à l'utilisateur principal sont adm, cdrom, Sudo, dip, plugdev, lpadmin et sambashare . Pour ajouter des groupes ultérieurement, vous pouvez utiliser la commande suivante:

_Sudo usermod -aG <group-or groups> <user-name>
_

Enfin, votre utilisateur devrait avoir un mot de passe que vous pouvez définir avec:

_Sudo passwd <username>
_

Ceci met fin au processus de création d’utilisateur dans un terminal.

Il existe également une commande combinée appelée adduser qui automatise une partie du processus mentionné ci-dessus. Pour son utilisation, consultez man 8 adduser .

3
Videonauth