Gestion des users/groups

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


De retour pour le deuxième article de la série sur le monde Linux. Après la hiérarchie des répertoires, on s’attaque à la gestion des utilisateurs et des groupes ! Rien de bien compliqué à priori mais il y a quand même deux trois trucs à connaître 😉 !

I/ La gestion des utilisateurs

Quand vous installer votre OS pour la première fois, deux comptes sont crées : le vôtre et le compte root. Le compte root c’est le superadmin, celui qui a les pleins droits sur votre système. Pour cet article nous aurons besoin d’un troisième compte que l’on va appeler « utilisateur1 ». Pour créer l’utilisateur, rien de plus simple :

sudo adduser utilisateur1

Lors de la création, plusieurs informations vont vous êtres demandées :

adduser.png

Libre à vous de rentrer des informations valides ou non… A chaque fois que nous créons un utilisateur, un répertoire personnel est automatiquement crée :

user1.png

Il existe un utilitaire bien sympas qui va nous permettre de faire pas mal de modification sur notre utilisateur : usermod. L’option la plus intéressante selon moi c’est l’option -d qui permet de modifier l’emplacement du répertoire personnel de l’utilisateur et en passant de bien faire rager vos potes 😎😎 ! Par exemple vous pouvez faire en sorte que le répertoire personnel de l’utilisateur « utilisateur1 » soit le répertoire /tmp :

sudo usermod -d /tmp utilisateur1

Du coup si je change d’utilisateur :

su utilisateur1

Et que je me rends dans le répertoire personnel de l’utilisateur :

cd ~

J’atterris en fait ici :

home.png

Un autre utilitaire bien sympas est passwd. Il vous permet de modifier le mot de passe des comptes utilisateur :

passwd

Et du coup pour supprimer un utilisateur il suffit d’entrer cette commande :

sudo deluser utilisateur1 --remove-home

Comme vous vous en doutez, l’option –remove-home permet de supprimer le répertoire home de l’utilisateur. Si vous ne la spécifiez pas il ne sera pas supprimé.

Au point où on est je pense qu’il est intéressant de s’attarder sur les fichier /etc/passwd et /etc/shadow. Ce sont tous les deux des fichiers ultra importants, le fichier /etc/shadow contient les différents utilisateurs ainsi que les mots de passe associés hashés tandis que le fichier /etc/passwd contient lui aussi les différents comptes mais aussi des informations supplémentaires (que nous verrons tout à l’heure).

Pour afficher le contenu de ces fichiers vous pouvez utiliser ces commandes :

sudo cat /etc/shadow 
sudo cat /etc/passwd
  • /etc/passwd :

Voici une partie de mon /etc/passwd :

passwd.png

Chaque ligne est composée de plusieurs champs séparés par des  » : « . Au total nous avons donc sept champs :

  1. Le nom de l’utilisateur .
  2.  Un « x ». Cette valeur indique que le mot de passe du compte root est contenu dans le fichier /etc/shadow.
  3. Le numéro d’identification de l’utilisateur.
  4. Le numéro d’identification du groupe (souvent identique au numéro d’identification de l’utilisateur).
  5. Le nom complet de l’utilisateur.
  6. Le répertoire personnel de l’utilisateur : ici le répertoire root situé à la racine.
  7. Le shell attribué à l’utilisateur ici /bin/bash pour root.

En faisant mes recherches je suis tombé sur ce petit troll sur le site linux-france:

Peut-être ne souhaitez-vous pas fournir de compte shell pour vos utilisateurs. Vous pouvez alors créer un fichier script appelé « /bin/sorrysh », par exemple, qui afficherait toute sorte de messages d’erreur et ferait que l’utilisateur sorte du système et puis assigner ce script comme shell par défaut.

J’ai trouvé ça rigolo du coup je vous le partage ahah ! Sinon, pas grand chose de plus à savoir sur ce fichier, le plus intéressant reste /etc/shadow 😎 !

  • /etc/shadow :

Voici une partie de mon /etc/shadow :

shado.png

Toujours la même histoire : plusieurs lignes qui contiennent plusieurs champs (neuf ici) :

  1. Le nom du compte.
  2. Le mot de passe hashé (qui contient lui même trois champs séparés par des  » $  » : le format du hash, le salt utilisé pour renforcer le hash et le mot de passe hashé). A savoir que le salt est utilisé afin de rendre plus compliqué les attaques par raibow tables.
  3. Le nombre de jours depuis le début d’UNIX (daté au 01/01/1970).
  4. Le nombre de jour à attendre avant de pouvoir changer le mot de passe.
  5. Le maximum de jours avant de devoir changer le mdp (autant dire jamais).
  6. La durée en jour pendant laquelle l’utilisateur sera averti qu’il doit modifier son mdp.
  7. La durée en jour au bout de laquelle le compte est désactivé si le mot de passe n’est pas changé.
  8. Le nombre de jours depuis la désactivation du compte.
  9. Pour le moment ce champ ne sert à rien mais il y «  » » »devrait » » » » être utilisé pour de futurs besoins.

Concrètement les seuls champs qu’il faut retenir c’est celui du nom du compte et celui du mot de passe… Chose importante à savoir, quand vous utilisez l’utilitaire passwd, c’est l’algorithme SHA512 qui est utilisé pour hasher le mot de passe (fonction de hashage plutôt safe).

Bueno, on a fait le tour pour les utilisateurs passons à la gestion des groupes.

II/ La gestion des groupes

Qu’est ce qu’un groupe ? Bah c’est un ensemble d’utilisateurs… 👍👍 Du coup on est en droit de se demander à quoi servent les groupes ? Pour le moment pas à grand chose. En revanche quand on jouera avec les permessions, l’utilisation des groupes prendra tout son sens. Pour créer un groupe vous pouvez utiliser cette commande :

sudo addgroup nomdugroupe

Pour ajouter un utilisateur dans un groupe c’est cette commande :

sudo adduser nomduuser nomdugroupe

Du coup en toute logique pour supprimer un utilisateur d’un groupe on utilisera la commande suivante :

sudo deluser nomduuser nomdugroupe

Et pour supprimer un groupe :

sudo delgroup nomdugroupe

A l’instar des utilisateurs, il existe un fichier /etc/group qui contient les données de l’ensemble des groupes :

group.png

Quatre champs cette fois. le premier c’est le nom du groupe, le deuxième c’est le mot de passe (non attribué ici et je vois pas à trop à quoi ça pourrait servir mais bon… Soit.), le troisième champ c’est l’identificateur du groupe et enfin la liste des utilisateurs qui sont dans le groupe.


Voilà voilà ! Jusqu’à présent nous n’avons que créer des utilisateur et des groupes. Sauf que parfois on a besoin qu’un utilisateur ait certains droits d’accès tandis que d’autres non. Pour gérer tout ça on dispose d’un système de permissions un peu comme sur Windows. Sur Linux c’est un peu plus long à prendre en main mais ça devient très facile à utiliser avec le temps. Mais ça, ça sera pour la prochaine fois 😘 !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s