Chap4 Gestion Des Utilisateurs Et Des Groupes Sous Redhat
Chap4 Gestion Des Utilisateurs Et Des Groupes Sous Redhat
Chap4 Gestion Des Utilisateurs Et Des Groupes Sous Redhat
Objectifs du cours
Après avoir terminé ce chapitre, les étudiants devraient être en mesure d'expliquer le rôle
des utilisateurs et des groupes sur un système Linux et comment ils sont gérés par
l'administrateur.
Public cible
•
Il n'y a pas de conditions préalables formelles pour ce cours; cependant, une expérience
d'administration système précédente sur d'autres systèmes d'exploitation sera très bénéfique.
Orientation vers l'environnement de la classe
Dans ce cours, les étudiants feront la plupart des exercices pratiques et des travaux de
laboratoire avec des machines virtuelles. Ces machines ont le nom d’hôte Desktop.FST.tn et
le nom d’utilisateur Etudiant. Chaque étudiant doit accéder au système installé avec le mot de
passe « etudiant ». Le mot de passe root est « redhat ».
Les systèmes utilisés seront installés sur des machines virtuelles s’exécutant sur la
machine physique de chaque étudiant. Les étudiants doivent se connecter à cette machine en
utilisant le mot de passe « redhat » et par deux façons ; soit à l’intermédiaire de la console de
l’application de virtualisation utilisée, soit par l’intermédiaire de l’outil putty ou similaire.
Introduction
Chaque processus (programme en cours d'exécution) sur le système s'exécute en tant
qu'utilisateur particulier. Chaque fichier ou répertoire appartient à un utilisateur particulier
dont l'accès aux est restreint à un utilisateur particulier. L'utilisateur associé à un processus
d'exécution détermine les fichiers et les répertoires accessibles à ce processus.
[etudiant@desktop ~]$ id
uid=1000(etudiant) gid=1000(etudiant) groupes=1000(etudiant)
contexte=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
En général pour voir les processus en cours sous un shell linux on tape la commande ps,
et pour afficher plus de détails on peut ajouter l’option « a » mais si on veut voir l’utilisateur
associé on doit ajouter l’option « u » dont l’utilisateur apparaitra à la première colonne de
l’affichage.
[etudiant@desktop ~]$ ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
etudiant 5557 0.0 0.6 340516 12760 tty2 Ssl+ nov.10 0:00 /usr/libexec/
etudiant 5566 0.0 0.9 732848 18228 tty2 Sl+ nov.10 0:00 /usr/libexec/gnome-session-binary
etudiant 5643 0.1 22.1 3075316 413012 tty2 Sl+ nov.10 3:21 /usr/bin/gnome-shell
etudiant 5673 0.0 2.6 562184 49304 tty2 Sl+ nov.10 0:00 /usr/bin/Xwayland :0 -rootless -terminate
etudiant 5692 0.0 0.5 389364 10884 tty2 Sl nov.10 0:09 ibus-daemon --xim --panel disable
etudiant 5697 0.0 0.4 303204 8768 tty2 Sl nov.10 0:00 /usr/libexec/ibus-dconf
etudiant 5698 0.0 1.4 437228 26768 tty2 Sl nov.10 0:01 /usr/libexec/ibus-extension-gtk3
etudiant 5703 0.0 3.3 836684 62352 tty2 Sl nov.10 0:00 /usr/libexec/ibus-x11 --kill-daemon
etudiant 5789 0.0 1.4 622156 27232 tty2 Sl+ nov.10 0:00 /usr/libexec/gsd-power
etudiant 5790 0.0 0.6 362808 12000 tty2 Sl+ nov.10 0:00 /usr/libexec/gsd-print-notifications
En appliquant la commande précédante on a identifié les utilisateurs par leurs noms mais
à l’intérieur du système d’exploitation les utilisateurs sont identifiés par leurs identifiant uid
qui est stocké à la base de donnée système qui admet tous les informations necessaires pour
les utilisateurs. Par defaut le système utilise le « flat file » pour stoquer les informations dans
le fichier /etc/passwd. L’affichage dans ce fichier sera sous forme de 7 colonnes séparés par
deux points.
(1) username c’est le nom d’utilisateur sera affiché comme il est écrit sous le système
(2) password c’est dans cet emplacement qu’historiquement les mots de passe ont été stockés
de manière chiffrée mais par la suite avec l’évolution du système Redhat ils sont devenus
stockés au fichier /etc/shadow
(3) UID c’est le numéro utilisé par le système pour identifier l’utilisateur.
(5) GECOS c’est un champ arbitraire utilisé pour afficher le vrai nom de l’utilisateur.
(6) /home/dir c’est le répertoire personnel ou seront stocké tous ses données et fichiers de
config.
(7) shell c’est le programme associé à l’utilisateur pour utiliser les commandes appropriés.
Groupes de travail
Les groupes comme leurs noms l’indiquent elles servent pour regrouper les utilisateurs
qui ont des caractéristiques en communs. Chaque groupe possède un identifiant appelé GID.
Groupes primaires :
Chaque utilisateur a un groupe primaire.
Pour les utilisateurs locaux, le groupe primaire est défini par le GID a la troisième
colonne du fichier /etc/passwd.
Normalement le groupe primaire est propriétaire des nouveaux fichiers crées.
Normalement le groupe primaire d’un nouveau utilisateur crée sera un groupe portant le
meme nom de l’utilisateur. L’utilisateur dans ce cas sera le seul membre du groupe
appelé User Private Group (UPG).
Groupes supplémentaires :
Les utilisateurs peuvent être membres de zéro ou plus groupes supplémentaires.
Les utilisateurs qui sont les membres supplémentaires du groupe local sont répertoriés
dans le dernier champ du groupe au fichier /etc/group. Pour les groupes locaux,
l'adhésion des utilisateurs est déterminée par une liste d'utilisateurs séparée par des
virgules qui se situent au dernier champ du fichier /etc/group :
Groupname : password : GID : list,of,users,in,this,group
L'adhésion à un groupe supplémentaire est utilisée pour s'assurer que les utilisateurs ont
le droit d’accéder aux fichiers et à d'autres ressources sur le système.
Le Super Utilisateur root
La plupart des systèmes d’exploitation utilisent la notion du super utilisateur qui possède
le pouvoir total sur tout le système appelé pour les systèmes linux tel que Redhat l’utilisateur
root.
Cet utilisateur a le pouvoir total sur les systèmes de fichiers, il est utilisé pour gérer les
fichiers et les répertoires système et effectuer les tâches d’administration telles que
l'installation ou la suppression de logiciels, pour cela les privilèges de cet utilisateur doivent
être élevés.
La plupart des périphériques sont exclusivement gérés par l’utilisateur root à l’exception
de quelques-uns tel que le flash USB qui peut être ajouté et géré par un simple utilisateur.
Ces super pouvoirs ne doivent pas être disponible à tous les utilisateurs pour cela ils
peuvent à chaque fois qu’ils ont besoin d’exécuter quelques taches en prenant
momentanément ces pouvoir afin de pas endommager le système.
La commande su
[etudiant@desktop ~]$ su -
Password : redhat
[root@desktop ~]#
sur les paramètres présente dans le fichier /etc/sudoers. Cette commande est différente à la
commande su vu qu’elle ne demande pas le mot de passe root en exécutant une commande
qui demande plus de privilèges à l’exceptions de quelques uns.
Par exemple pour autoriser l’utilisateur étudiant à exécuter la commande sudo avec
usermod en tant que root dans il sera obligé d’introduire le mot de passe :
[etudiant@desktop ~]$ sudo usermod –L username
[sudo] mot de passe de etudiant : password
L’avantage bénéfique d’avoir utilisé la commande sudo est que toutes les commandes
exécutés avec cette commande seront enregistrés par défaut au fichier /var/log/secure.
[etudiant@desktop ~]$ sudo tail /var/log/secure
Nov 02 05:57:21 desktop su[30736]: pam_unix(su:session): session opened for user root by (uid=1000)
Nov 02 05:58:14 desktop su[30780]: pam_systemd(su:session): Cannot create session: Already running in a session or
user slice
Nov 02 05:58:14 desktop su[30780]: pam_unix(su:session): session opened for user etudiant by (uid=0)
Nov 02 06:25:40 desktop gdm-password][31069]: gkr-pam: unlocked login keyring
Nov 02 06:25:54 desktop sudo[31103]: pam_unix(sudo:auth): conversation failed
Nov 02 06:25:54 desktop sudo[31103]: pam_unix(sudo:auth): auth could not identify password for [etudiant]
Nov 02 06:25:58 desktop sudo[31105]: pam_unix(sudo:auth): authentication failure; logname= uid=1000 euid=0
tty=/dev/pts/0 ruser=etudiant rhost= user=etudiant
A partir de la version RedHat Enterprise 7, tous les membres du groupe wheel peuvent
utiliser sudo pour exécuter des commandes comme n'importe quel utilisateur privilégié, y
compris root. L'utilisateur dans ce cas sera invité à saisir son propre mot de passe.
Quand on utilise la commande useradd username sans options elle va mettre les champs
par defaut du fichier /etc/passwd. Mais la commande useradd ne va pas créer le mot depasse
automatiquement à l’utilisateur donc l’utilisateur ne peut pas connecter sans avoir créer son
mot de passe.
On peut voir les différents options de useradd en ajoutant l’option –help. Certaines
options peuvent etre ajoutés avec la commande usermod pour modifier l’utilisateur existant.
Certaines informations relatives aux UID valides et les règles de création des mots de
passe se trouvent au fichier /etc/login.defs. la modification de ce fichier n’engendrera aucun
effet sur un utilisateur déjà crée.
La commande usermod –help affiche les options qu’on peut utiliser pour modifier un
utilisateur existant :
Options usermod
-c Ajouter un commentaire, comme le nom réel au champ GECOS
-g --gid group Spécifier le groupe primaire de l’utilisateur
-G --groups Groups Spécifier la liste des groupes supplémentaires de l’utilisateur
-a --append Utilisée avec l’option -G pour ajouter l’utilisateur à un groupe
supplémentaire sans le supprimer d’autres groupes
-d --home HOME-DIR Spécifier le répertoire personnel
-m --move-home Déplacer le répertoire personnel vers un nouveau emplacement
-s --shell -SHELL Spécifier un shell pou l’utilisateur
-L --lock Verrouiller le compte
-U --unlock Déverrouiller le compte
Suppression des utilisateurs
Les groupes d’utilisateurs doivent exister avant les utilisateurs eux-mêmes pour qu’ils
puissent être ajoutés à leurs groupes. Le shell Redhat contient plusieurs commandes concus
pour gérer les groupes.
La commande groupadd sans option utilise automatiquement les rangés de GID présente
dans le fichier /etc/logins.defs
L’option -r forcera l’utilisation des rangés de GID existants dans le fichier /etc/login.defs
La commande groupmod est utilisée pour modifier le nom du groupe en mappage GID.
L’option -n est utilisée pour spécifier un nouveau nom et l’option -g est utilisée pour modifier
le GID.
Le groupe ne doit pas être supprimé s’il est un groupe primaire d’utilisateurs existants. Il
faut vérifier donc avec userdel qu’aucun fichier restant n’est géré par le groupe qu’on va
effacer.
Avant les mots de passes encryptés Redhat étaient stockés dans le fichier lisible
/etc/passwd. Mais en évolution de temps et vu les attaques par dictionnaires qui évoluent en
parallèle il est devenu obligatoire d’améliorer la coté sécurité pour les mots de passe pour cela
ils ont été déplacés vers le fichier /etc/shadow. Ce nouveau fichier a permis aux
fonctionnalités de vieillissement et d’expiration des mots de passe d’être mis en œuvre.
Le nouveau mot de passe crypté est composé de trois parties après l’application de la
méthode de hashage:
Le ficher /etc/shadow a un format spécifique dont il contient 9 champs séparés par deux
point :
(1)name:(2)password : (3)lastchange: (4)minage: (5)maxage: (6)warning: (7)inactive: (8)expire: (9)blank
(2) Le mot de passe encrypté, ce champs commence par un point d’exclamation pour
indiquer que le mot de passe est verrouillé.
(3) La date du dernier changement du mot de passe représentée par les nombres de jours
depuis le 01.01.1970.
(4) Le nombre minimal de jour avant que le mot de passe doit être changé, si l’affichage
indique 0 donc il y’aura pas un besoin de changement.
(5) Le nombre maximal de jour avant que le mot de passe doit être changé.
(6) La période d’avertissement pour que le mot de passe expire. Si elle est égale à 0 c’est
que le mot de passe n’expire jamais.
(7) Le nombre de jours ou le compte reste active après l’expiration de son mot de passe.
L’utilisateur aura la possibilité de se connecter au compte durant ce période et changer le mot
de passe. Après cette periode indiqué le compte sera verrouillé et inactif.
Le diagramme suivant contient les paramètres pertinents qui peuvent être ajustés pour
implémenter un changement au niveau de la politique des mots de passe.
Avec la commande chage l’expiration du compte peut être définie. Une fois cette date est
atteinte l’utilisateur ne peut pas se connecter au système. Donc il pourra être verrouillé en
tapant la commande usermod –L.
Lorsqu’un utilisateur quitte l’entreprise l’administrateur peut désactiver son compte avec
la commande usermod. Le nombre de jours qui doit etre introduit est le nombre de jours
depuis le 01.01.1970.
nologin shell
Parfois un utilisateur aura besoin d’un nom d’utilisateur et mot de passe pour accéder au
système sans avoir besoin d’un shell interactif tel que le serveur mail qui demande un compte
pour stocker le courrier et un mot de passe pour l’utilisateur pour s’authentifier avec le client
mail pour accéder au courrier. Cet utilisateur n’aura pas besoin de se connecter au système.
Une solution commune à cette situation est de définir le shell de connexion à
/sbin/nologin. Si l’utilisateur essaye de s’authentifier avec ce compte sous le système
directement le nologin shell fermera la connexion.
[etudiant@desktop ~]$ usermod -s /sbin/nologin etudiant
[etudiant@desktop ~]$ su – etudiant
Derniere connexion : Tue Nov 2 18:40:30 EST 2021 on pts/0
Ce compte est actuellement non disponible