Les comptes d'utilisateurs peuvent être attribués à un ou plusieurs groupes sous Linux. Vous pouvez configurer les autorisations de fichiers et autres privilèges par groupe. Par exemple, sous Ubuntu, seuls les utilisateurs du groupe sudo peuvent utiliser le
sudo
commande pour obtenir des autorisations élevées.
Ajouter un nouveau groupe
Si vous souhaitez créer un nouveau groupe sur votre système, utilisez la commande
groupadd
commande suivante commande, en remplaçant new_group par le nom du groupe que vous souhaitez créer. Vous devrez également utiliser sudo avec cette commande (ou sur les distributions Linux qui n’utilisent pas
sudo
vous devrez exécuter le
su
commande seule pour obtenir des autorisations élevées avant d’exécuter la commande).
sudo groupadd mynewgroup
Ajouter un compte d'utilisateur existant à un groupe
Pour ajouter un compte utilisateur existant à un groupe de votre système, utilisez la commande
usermod
commande, remplacement
examplegroup
avec le nom du groupe auquel vous voulez ajouter l'utilisateur et
exampleusername
avec le nom de l'utilisateur que vous souhaitez ajouter.
usermod -a -G examplegroup exampleusername
Par exemple, pour ajouter l'utilisateur
geek
au groupe
sudo
utilisez la commande suivante:
usermod -a -G sudo geek
Changer le groupe principal d'un utilisateur
Bien qu'un compte d'utilisateur puisse faire partie de plusieurs groupes, l'un des groupes est toujours le «groupe principal» et les autres sont des «groupes secondaires». Le processus de connexion de l’utilisateur et les fichiers et dossiers créés par cet utilisateur seront affectés au groupe principal.
Pour changer le groupe principal auquel un utilisateur est assigné, lancez la commande
usermod
commande, remplacement
examplegroup
avec le nom du groupe que vous voulez être le principal et
exampleusername
avec le nom du compte utilisateur.
usermod -g groupname username
Noter la
-g
ici. Lorsque vous utilisez une minuscule g, vous affectez un groupe principal. Quand vous utilisez une majuscule
-G
comme ci-dessus, vous affectez un nouveau groupe secondaire.
Afficher les groupes auxquels un compte d'utilisateur est assigné
Pour afficher les groupes auxquels le compte d'utilisateur actuel est attribué, exécutez la commande
groups
commander. Vous verrez une liste de groupes.
groups
Pour afficher les identifiants numériques associés à chaque groupe, exécutez la commande
id
commande à la place:
id
groups
commande et spécfy le nom du compte utilisateur.
groups exampleusername
Vous pouvez également afficher les identifiants numériques associés à chaque groupe en exécutant la commande
id
commande et spécifiant un nom d'utilisateur.
id exampleusername
Le premier groupe du
groups
liste ou le groupe affiché après “gid =” dans le
id
La liste est le groupe principal du compte utilisateur. Les autres groupes sont les groupes secondaires. Ainsi, dans la capture d'écran ci-dessous, le groupe principal du compte d'utilisateur est
example
Créer un nouvel utilisateur et affecter un groupe en une seule commande
Vous souhaiterez parfois créer un nouveau compte utilisateur ayant accès à une ressource ou à un répertoire particulier, comme un nouvel utilisateur FTP. Vous pouvez spécifier les groupes auxquels un compte d'utilisateur sera attribué lors de la création du compte d'utilisateur avec le
useradd
commande, comme si:
useradd -G examplegroup exampleusername
Par exemple, pour créer un nouveau compte utilisateur nommé jsmith et affecter ce compte au groupe ftp, vous devez exécuter:
useradd -G ftp jsmith
Vous souhaiterez ensuite attribuer un mot de passe à cet utilisateur, bien sûr:
passwd jsmith
Ajouter un utilisateur à plusieurs groupes
Lors de l'affectation des groupes secondaires à un compte d'utilisateur, vous pouvez facilement affecter plusieurs groupes à la fois en séparant la liste par une virgule.
usermod -a -G group1,group2,group3 exampleusername
Par exemple, pour ajouter l'utilisateur nommé geek aux groupes ftp, sudo et d'exemple, vous devez exécuter:
usermod -a -G ftp,sudo,example geek
Vous pouvez spécifier autant de groupes que vous le souhaitez, séparez-les simplement par une virgule.
Afficher tous les groupes du système
Si vous souhaitez afficher une liste de tous les groupes de votre système, vous pouvez utiliser le
getent
commander:
getent group
Cette sortie vous indiquera également quels comptes d'utilisateurs sont membres de quels groupes. Ainsi, dans la capture d'écran ci-dessous, nous pouvons voir que les comptes utilisateur syslog et chris sont membres du groupe adm.