• Aucun résultat trouvé

Fichiers contrôlant les comptes utilisateur et groupes

Dans le document Red Hat Enterprise Linux 3 (Page 157-160)

6. Gestion des comptes utilisateur et de l’accès aux ressources

6.2. Gestion des ressources de l’utilisateur

6.3.2. Fichiers contrôlant les comptes utilisateur et groupes

Sur Red Hat Enterprise Linux, les informations relatives aux comptes utilisateur et groupes sont sto-ckés dans divers fichiers texte contenus dans le répertoire/etc/. Lorsqu’un l’administrateur système crée de nouveaux comptes utilisateur, il doit soit modifier ces fichiers manuellement, soit utiliser des applications pour effectuer les modifications requises.

La section suivante examine les fichiers du répertoire/etc/qui, sous Red Hat Enterprise Linux, contiennent des informations sur les utilisateurs et les groupes.

6.3.2.1./etc/passwd

Le fichier/etc/passwd, examinable par tout utilisateur, contient une liste d’utilisateurs dans laquelle chacun apparaît sur une ligne différente. Sur chaque ligne figure une liste d’éléments séparés les uns des autres par deux points fournissant les informations suivantes :

Nom d’utilisateur— Le nom ou identifiant que l’utilisateur saisit lorsqu’il se connecte au système.

Mot de passe— Contient le mot de passe codé (ou la symbolexsi des mots de passe masqués sont utilisés — ce point sera traité ultérieurement).

ID utilisateur(UID) — L’équivalent numérique du nom d’utilisateur qui est référencé par le sys-tème et les applications lors de l’établissement des privilèges.

ID Groupe(GID) — L’équivalent numérique du nom du groupe primaire qui est référencé par le système et les applications lors de l’établissement des privilèges.

GECOS— Ainsi nommé pour des raisons historiques, le champ GECOS1qui est facultatif, sert à stocker des informations supplémentaires (telles que le nom complet de l’utilisateur). Il est possible de stocker dans ce champ de multiples entrées sous forme d’une liste dont les éléments sont séparés par des virgules. Des utilitaires tels quefingerpermettent d’accéder à ce champ afin de saisir des informations supplémentaires sur l’utilisateur.

Répertoire personnel— Le chemin d’accès absolu au répertoire personnel (aussi appelé répertoire home ou maison) de l’utilisateur, comme par exemple,/home/juan/.

Shell— Le programme lancé automatiquement lors de chaque connexion de l’utilisateur. Ce dernier est généralement un interpéteur de commandes (souvent appelé unshell). Sous Red Hat Enterprise Linux, la valeur par défaut est/bin/bash. Si ce champ est laissé blanc,/bin/shsera la valeur utilisée. Si la valeur choisie correspond à un fichier qui n’existe pas, l’utilisateur ne sera pas en mesure de se connecter au système.

Ci-dessous figure l’exemple d’une entrée présente dans/etc/passwd:

1. L’acronyme GECOS signifie General Electric Comprehensive Operating Supervisor. Ce champ était utilisé dans le passé par Bell Labs dans l’implémentation UNIX d’origine. Le laboratoire avait de nombreux ordina-teurs dont un exécutant GECOS. Ce champ était utilisé pour stocker des informations lorsque le système UNIX envoyait des lots et des travaux d’impression au système GECOS.

root:x:0:0:root:/root:/bin/bash

Cette ligne montre que le super-utilisateur (ouroot) dispose d’un mot de passe masqué et que la valeur de UID et GID est 0. L’utilisateurroota/root/comme répertoire personnel et utilise /bin/bashcomme shell.

Pour obtenir de plus amples informations sur /etc/passwd, consultez la page de manuel de passwd(5).

6.3.2.2./etc/shadow

Étant donné que le fichier/etc/passwddoit être examinable par tout utilisateur (la raison principale étant que ce fichier est utilisé pour effectuer la conversion de l’UID en nom d’utilisateur), il est risqué de stocker les mots de passe de tous les utilisateurs dans/etc/passwd. Certes, les mots de passe sont codés. Néanmoins, il est tout à fait possible d’effectuer une attaque contre des mots de passe si leur format codé est disponible.

Si un agresseur peut se procurer une copie du fichier/etc/passwd, il peut facilement orchestrer une attaque en secret. Au lieu de risquer d’être détecté en tentant de se connecter à l’aide de chacun des mots de passe potentiels générés par programme craqueur de mots de passe, un agresseur peut utiliser un tel programme de la manière suivante :

Un craqueur de mots de passe génère des mots de passe potentiels

Chaque mot de passe potentiel est alors codé en utilisant le même algorithme que celui du système

Le mot de passe potentiel ainsi codé est alors comparé à la liste des mots de passe cryptés présente dans/etc/passwd

L’aspect le plus dangereux d’une telle attaque est qu’elle peut avoir lieu sur un système très éloigné de votre entreprise. Ainsi, l’agresseur peut utiliser le matériel le plus puissant qu’il soit et peut traiter un nombre impressionnant de mots de passe en une très courte durée.

Telle est la raison pour laquelle le fichier/etc/shadowd’une part, ne peut être examiné que par le super-utilisateur et d’autre part contient des mots de passe (et en option, des informations sur l’expiration des mots de passe) pour chaque utilisateur. Comme dans le fichier/etc/passwd, les informations relatives à chaque utilisateur se trouvent sur une ligne différente. Chacune de ces lignes apparaît sous la forme d’une liste dont les éléments sont séparés par deux points et inclut les informa-tions suivantes :

Non d’utilisateur— Le nom ou identifiant (Username en anglais) que l’utilisateur saisit lorsqu’il se connecte au système. Cet élément permet à l’applicationlogind’extraire le mot de passe de l’utilisateur (et les informations connexes).

Mot de passe crypté— Le mot de passe d’une longueur de 13 à 24 caractères. Ce dernier est codé soit à l’aide de la fonction de bibliothèquecrypt(3), soit à l’aide de l’algorithme de hashage md5. Dans ce champ, des valeurs autres qu’un mot de passe hashé ou codé selon un format valide sont utilisées pour contrôler les connexions de l’utilisateur et indiquer le statut du mot de passe.

Par exemple, si la valeur est!ou*, le compte est verrouillé et l’utilisateur n’est pas autorisé à se connecter. Si la valeur est!!, un mot de passe n’a jamais été établit auparavant (et l’utilisateur, n’ayant pas de mot de passe, ne pourra pas se connecter).

Date du dernier changement du mot de passe— Le nombre de jours s’étant écoulé entre le 1er janvier 1970 (date à laquelle ont fait aussi référence en tant qu’époque) et la date du dernier change-ment de mot de passe. Cet éléchange-ment est utilisé de concert avec les champs relatifs à l’expiration du mot de passe figurant ci-dessous.

Nombre de jours avant tout changement de mot de passe— Le nombre minimum de jours devant s’écouler avant que le mot de passe ne puisse être changé.

Nombre de jours avant un changement de mot de passe nécessaire— Le nombre minimum de jours devant s’écouler avant que le mot de passe ne doive être changé.

Nombre de jours avertissant d’un changement de mot de passe imminent— Le nombre de jours précédent l’expiration d’un mot de passe pendant lesquels l’utilisateur est averti de l’expiration imminente du mot de passe.

Le nombre de jours précédent la désactivation du compte— Le nombre de jours pouvant s’écouler avant que le compte ne soit désactivé.

Date de désactivation du compte— La date (exprimée en tant que le nombre de jours écoulés depuis l’époque) à partir de laquelle le compte a été désactivé.

Un champ réservé— Un champ qui n’est pas pris en compte dans Red Hat Enterprise Linux.

Ci-après figure l’exemple d’une ligne tirée du fichier/etc/shadow: juan:$1$.QKDPc5E$SWlkjRWexrXYgc98F.:11956:0:90:5:30:12197:

Cette ligne montre les informations suivantes s’appliquant à l’utilisateurjuan:

Le dernier changement de mot de passe date du 25 septembre 2002

Le mot de passe peut être changé à tout moment puisqu’aucun délai n’existe

Le mot de passe doit être changé tous les 90 jours

L’utilisateur recevra un avertissement cinq jours avant la date d’expiration du mot de passe

Le compte sera désactivé 30 jours après la date d’expiration du mot de passe si aucune tentative de connexion n’est effectuée

La validité du compte viendra à échéance le 24 mai 2003

Pour obtenir de plus amples informations sur le fichier/etc/shadow, consultez la page de manuel deshadow(5).

6.3.2.3./etc/group

Le fichier/etc/group, examinable par tout utilisateur, contient une liste de groupes figurant chacun sur une ligne différente. Chaque ligne, composée de quatre champs apparaissant sous forme de liste dont les éléments sont séparés entre eux par deux points, inclut les informations suivantes :

Nom du groupe— Le nom du groupe qui est utilisé par différents programmes utilitaires comme identifiant lisible pour le groupe.

Mot de passe du groupe— S’il existe, il permet aux utilisateurs qui ne font pas partie du groupe de le rejoindre en utilisant la commandenewgrpet en saisissant le mot de passe défini. La présence d’un caractèrexminuscule dans ce champ indique que des mots de passe masqués sont utilisés pour le groupe.

ID du groupe(GID) — L’équivalent numérique du nom de groupe qui est utilisé par le système d’exploitation et par les applications lors de l’établissement des privilèges d’accès.

Liste des membres— Une liste des utilisateurs appartenant au groupe dont les éléments sont séparés par une virgule.

Ci-après figure l’exemple d’une ligne tirée du fichier/etc/group: general:x:502:juan,shelley,bob

Cette ligne montre que le groupegeneralutilise des mots de passe masqués, qu’il a un GID de 502 et quejuan,shelleyetbobsont des membres du groupe.

Pour obtenir de plus amples informations sur/etc/group, reportez-vous à la page de manuel de group(5).

6.3.2.4./etc/gshadow

Le fichier/etc/gshadow, examinable seulement par le super-utilisateur, contient un mot de passe codé pour chaque groupe ainsi que des informations sur les membres du groupe et sur les adminis-trateurs. Tout comme dans le fichier/etc/group, les informations sur chaque groupe apparaissent sur une ligne différente. Sur chacune d’elles apparaît une liste dont les éléments sont séparés par une virgule et fournissent les informations suivantes :

Nom du groupe— Le nom du groupe qui est utilisé par différents programmes utilitaires comme identifiant lisible pour le groupe.

Mot de passe crypté — Le mot de passe codé du groupe. S’il est établit, les membres qui n’appartiennent pas au groupe peuvent le rejoindre en saisissant le mot de passe de ce dernier à l’aide de la commandenewgrp. Si la valeur de ce champ est!, aucun utilisateur n’est autorisé à accéder au groupe à l’aide de la commandenewgrp. Une valeur correspondant à!!est traitée de la même manière que!— toutefois, elle indique en plus qu’un mot de passe n’a jamais été établi auparavant. Finalement, si la valeur est nulle, seuls les membres du groupe peuvent se connecter au groupe.

Administrateurs du groupe— Les membres du groupe énumérés dans ce champ (dans une liste dont les éléments sont séparés les uns des autres par une virgule) peuvent ajouter ou retirer des membres à l’aide de la commandegpasswd.

Membres du groupe— Les membres du groupe énumérés dans ce champ (dans une liste dont les éléments sont séparés les uns des autres par une virgule) sont des membres normaux du groupe ne pouvant pas effectuer de tâches d’administration.

Ci-après figure l’exemple d’une ligne tirée du fichier/etc/gshadow: general:!!:shelley:juan,bob

Cette ligne montre que le groupegeneraln’a pas de mot de passe et ne permet pas aux utilisateurs n’y appartenant pas de le rejoindre à l’aide de la commandenewgrp. De plus,shelleyest un ad-ministrateur du groupe alors quejuanetbobeux, sont des membres normaux ne disposant pas de privilèges administratifs.

Étant donné que la modification manuelle de ces fichiers peut être la source d’erreurs de syntaxe, il est plutôt conseillé de recourir aux applications fournies avec Red Hat Enterprise Linux pour effectuer ce genre d’opérations. La section suivante passe en revue les outils permettant d’effectuer ces opérations.

Dans le document Red Hat Enterprise Linux 3 (Page 157-160)