Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Gestion des groupes sous Linux

 

Gestion des groupes sous Linux

Les groupes sont une structure organisationnelle qui fait partie du contrôle d'accès discrétionnaire (DAC) de Linux. Le DAC est le contrôle de sécurité traditionnel de Linux, où l'accès à un fichier, ou à tout autre objet, est basé sur l'identité de l'utilisateur et son appartenance actuelle à un groupe. Lorsqu'un compte utilisateur est créé, il est rattaché à un groupe particulier, appelé groupe par défaut du compte. Bien qu'un compte d'utilisateur puisse avoir de nombreuses appartenances à des groupes, son processus ne peut avoir qu'un seul groupe courant désigné à la fois. Le groupe par défaut est le groupe actuel d'un compte, lorsque l'utilisateur se connecte pour la première fois au système.

Les groupes sont identifiés par leur nom ainsi que par leur numéro d'identification de groupe (GID). Ceci est similaire à la façon dont les utilisateurs sont identifiés par des UIDs, dans la mesure où le GID est utilisé par Linux pour identifier un groupe particulier, alors que les humains utilisent des noms de groupes.

Si un groupe par défaut n'est pas désigné lors de la création d'un compte d'utilisateur, un nouveau groupe est alors créé. Ce nouveau groupe porte le même nom que le nom du compte d'utilisateur, et un nouveau GID. Pour connaître le groupe par défaut d'un compte, utilisez la commande getent pour afficher l'enregistrement /etc/passwd pour ce compte. Le quatrième champ de l'enregistrement est le GID du groupe par défaut du compte.

devinfo@ubuntu:~$ getent passwd mostafa
mostafa:x:1001:50::/home/mostafa:/bin/bash
devinfo@ubuntu:~$ sudo groups mostafa
mostafa : staff
devinfo@ubuntu:~$ getent group staff
staff:x:50:
devinfo@ubuntu:~$ grep 50 /etc/group
staff:x:50:
devinfo@ubuntu:~$ 

La première commande montre que le groupe du compte mostafa a un GID de 50, mais elle ne fournit pas de nom de groupe. La commande groups affiche le nom du groupe, qui est staff. La troisième commande, une autre commande getent, montre que le groupe 'staff' correspond bien au 50 GID. La quatrième commande confirme cette information.

Ajouter des groups

Pour ajouter un utilisateur à un nouveau groupe ou modifier le groupe par défaut du compte, le groupe doit préexister. Cette tâche est accomplie via l'utilitaire groupadd et les privilèges de super utilisateur.

sudo] Mot de passe de devinfo : 
devinfo@ubuntu:~$ getent group ecole
ecole:x:1001:

L'utilitaire getent affiche le nouvel enregistrement de groupe dans le fichier de groupe. Les champs du fichier /etc/group sont délimités par un deux-points ( :) et sont les suivants :

  1. Nom de groupe
  2. Mot de passe de groupe (Un x indique que, si un mot de passe de groupe existe, il est stocké dans le fichier /etc/gshadow.)
  3. GID
  4. Membres du groupe (comptes d'utilisateurs appartenant au groupe, séparés par une virgule)

Une fois qu'un nouveau groupe est créé, vous pouvez ajouter des membres individuels au groupe avec la commande usermod.

devinfo@ubuntu:~$ sudo groups mostafa
mostafa : staff
devinfo@ubuntu:~$ sudo usermod -aG ecole mostafa
devinfo@ubuntu:~$ sudo groups mostafa
mostafa : staff ecole
devinfo@ubuntu:~$ getent group ecole
ecole:x:1001:mostafa
devinfo@ubuntu:~$ 

Remarquez que la commande usermod utilise deux options, -aG. L'option -G ajoute le compte mostafa en tant que membre du groupe ecole, mais l'option -a est importante car elle préserve toute appartenance antérieure du compte mostafa au groupe. Après l'ajout du compte mostafa en tant que membre du groupe ecole, vous pouvez voir dans les deux derniers résultats de la commande que l'enregistrement du fichier /etc/group pour ecole a été mis à jour.

Pour qu'un utilisateur puisse accéder à un groupe dont il est membre alors que ce n'est pas son groupe par défaut ou courant, il doit utiliser une commande spéciale, newgrp. Affichez votre groupe actuel à l'aide de la commande id -gn puis changez votre groupe actuel avec la commande newgrp.

devinfo@ubuntu:~$ whoami
devinfo
devinfo@ubuntu:~$ id -gn
devinfo
devinfo@ubuntu:~$ newgrp ecole
devinfo@ubuntu:~$ id -gn
ecole
devinfo@ubuntu:~$ groups
ecole adm cdrom sudo dip plugdev lpadmin lxd sambashare devinfo
devinfo@ubuntu:~$ 

Remarquez qu'après l'utilisation de la commande newgrp, la commande id -gn montre que ecole est le groupe actuel pour le compte devinfo. Vous pouvez également voir tous les membres de votre groupe ainsi que le groupe actuel grâce à la commande groups. Votre groupe actuel est le premier de la liste affichée.

Pour qu'un utilisateur revienne à son groupe par défaut, il peut utiliser à nouveau newgrp suivi du nom du groupe. Alternativement, la commande exit fera également revenir un utilisateur dans le groupe par défaut, car newgrp crée un nouveau processus utilisateur lorsqu'il est utilisé.

Suppression de groupes

Pour supprimer un groupe, utilisez l'utilitaire groupdel.

ubuntu:~$ sudo groupdel ecole
devinfo@ubuntu:~$ getent group ecole
devinfo@ubuntu:~$ sudo groups mostafa
mostafa : staff
devinfo@ubuntu:~$ 

Notez qu'après la suppression du groupe ecole, la commande getent indique que l'enregistrement du groupe ecole a été supprimé du fichier /etc/group. Ce qui est vraiment bien, c'est que tout membre de ce groupe supprimé a également mis à jour les informations de son groupe, comme indiqué dans la troisième commande.

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.