web-dev-qa-db-fra.com

L'utilisateur Sudo n'appartient pas au groupe Sudo?

Lorsque vous ajoutez un utilisateur comme ceci:

Sudo adduser someuser --ingroup Sudo

L’utilisateur ajouté peut utiliser Sudo mais il n’est pas dans /etc/group Sudo ni dans /etc/sudoers
Alors, comment ça marche ?

3
EdiD

Votre commande adduser définit l'utilisateur groupe principal sur Sudo.

De man adduser:

   By  default,  each  user  in  Debian GNU/Linux is given a corresponding
   group with the same name.       [ ... ]                  Users' primary
   groups  can  also be overridden from the command line with the --gid or
   --ingroup options to set the group by id or name, respectively. 

   [ ... ]  

   --ingroup GROUP
          Add the new user to GROUP instead of a usergroup or the  default
          group  defined  by  USERS_GID  in  the configuration file.  This
          affects the users primary group.  To add additional groups,  see
          the add_extra_groups option

Le groupe principal a normalement le même nom et le même identifiant que l'utilisateur. Il n'est pas stocké dans /etc/group mais dans /etc/passwd, comme ceci:

bytecommander:x:1000:1000:ByteCommander,,,:/home/bytecommander:/bin/bash

Le 4ème champ séparé par :- contient le GID (ID de groupe) du groupe principal de l'utilisateur.

Now /etc/group contient une liste de tous les groupes et associe les utilisateurs qui ont ce groupe comme groupe supplémentaire (non principal), comme ceci:

Sudo:x:27:bytecommander

La distinction entre groupes primaires et supplémentaires est également visible dans le résultat de la commande id (formatage par moi):

$ id
uid=1000(bytecommander) 
gid=1000(bytecommander) 
groups=1000(bytecommander),27(Sudo)

Ce qui est important pour l’utilisation de Sudo n’est que l’appartenance au groupe Sudo, il ne fait pas la distinction entre l’appartenance primaire et secondaire. La ligne de configuration responsable se trouve dans /etc/sudoers et se présente comme suit:

%Sudo   ALL=(ALL:ALL) ALL

Cette ligne accorde à tous les membres du groupe Sudo automatiquement les autorisations complètes pour exécuter une commande en tant qu’utilisateur, sans avoir à spécifier chaque utilisateur manuellement.

2
Byte Commander

L'option --ingroup de adduser modifie/ajoute le groupe principal de l'utilisateur ajouté et le groupe principal d'un utilisateur est stocké dans le fichier /etc/passwd, dans le : séparé quatrième champ, en tant que GID numérique.

Donc, Sudo lit le fichier /etc/passwd et constate que l'utilisateur someuser a le groupe principal Sudo, de sorte que les commandes Sudo fonctionnent parfaitement.

À présent, l'entrée de groupe Sudo de /etc/group n'indiquerait toujours pas l'appartenance, car /etc/group stocke uniquement l'appartenance au groupe secondaire, et non primaire.

2
heemayl