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