Gestion des groupes et des utilisateurs

État : {a_reli}

Retour au document principal

Création des nouveaux utilisateurs

1ère étape : création du compte

On utilise la commande /usr/sbin/useradd pour créer les nouveaux comptes utilisateurs. La commande adduser est un lien symbolique qui pointe vers useradd (NdT : pas sur les systèmes Debian).

Syntaxe :

Exemple : ajouter l'utilisateur rufus

Si vous utilisez cette commande sans option, les valeurs par défaut sont utilisées. Vous pouvez afficher ces valeurs avec useradd -D

Vous trouverez également ces informations dans le fichier /etc/default/useradd.

2ème étape : activation du compte

Pour permettre à l'utilisateur d'accéder à son compte, l'administrateur doit lui attribuer un mot de passe en utilisant la commande passwd.

Syntaxe :

Au cours de ces étapes, nous avons créé l'utilisateur et défini son environnement (répertoire personnel, interpréteur de commande par défaut, etc.). L'utilisateur a également été affecté à un groupe, son groupe principal.

Travailler avec les groupes

Chaque utilisateur est affecté à un groupe initial (ou principal). Il existe deux conventions :

En conséquence, lorsque l'on utilise le modèle traditionnel, le umask utilisateur est fixé à 022 (voir LPI 101), alors qu'avec le modèle UPG, il est à 002.

Appartenance aux groupes

Un utilisateur peut appartenir à un nombre illimité de groupes. Cependant, à chaque instant, par exemple à la création d'un fichier, un seul groupe est le groupe effectif.

La commande id permet d'obtenir la liste des groupes auxquels un utilisateur appartient. Par exemple, pour l'utilisateur root :

Rejoindre un groupe

La commande newgrp vous permet de rejoindre un groupe, c'est à dire de lancer une nouvelle session - que vous pourrez quitter - en changeant de groupe effectif.

Exemple : rejoindre le groupe ventes

Si vous entrez la commande groups, le premier groupe de la liste n'est plus root mais ventes.

Création de nouveaux groupes

On utilise la commande groupadd pour administrer les groupes. Elle permet d'ajouter une ligne dans le fichier /etc/groups.

Exemple : création du groupe devel

Ajout d'un utilisateur à un groupe

La commande gpasswd permet d'administrer les groupes : on peut ajouter (-a) ou retirer (-d) des comptes utilisateurs à un groupe ou affecter un administrateur (-A). Cette commande était initialement prévue pour définir les mots de passe de groupes, ce qui permettait aux membres d'un même groupe de se connecter avec le même mot de passe. Pour des raisons de sécurité, cette fonctionnalité a été abandonnée.

Exemple : ajouter rufus au groupe devel

Fichiers de configuration

Fichiers /etc/passwd et /etc/shadow

Tous les comptes utilisateurs se trouvent dans le fichier /etc/passwd, dont voici la structure :

  1. identifiant
  2. mot de passe (ou x, si le fichier shadow est utilisé)
  3. UID
  4. GID
  5. description de l'utilisateur
  6. répertoire personnel
  7. interpréteur de commande (shell) utilisateur

Ces 7 champs sont séparés par ":", comme dans l'exemple ci-dessous :

Exemple : ligne de /etc/passwd avec des mots de passe chiffrés

Pour masquer les mots de passe chiffrés aux utilisateurs normaux, vous devriez utiliser le fichier shadow. Le fichier /etc/shadow tient la liste des identifiants et des mots de passe chiffrés et n'est lisible que par l'administrateur.

Pour convertir votre fichier passwd et créer un fichier shadow, tapez la commande suivante :

Le second champ de /etc/passwd sera remplacé par un "x" et créera le fichier /etc/shadow.

Si vous ne souhaitez pas utiliser de fichier shadow, tapez la commande suivante :

/!\ Lorsque vous utilisez le fichier shadow, le fichier /etc/passwd devrait être lisible par tout le monde (644) alors que le fichier /etc/shadow devrait être restreint (600 voir 400). Cependant, si vous utilisez pwunconv, assurez-vous de modifier les permission sur /etc/passwd (600 ou 400).

Les fichiers /etc/group et /etc/gshadow

De la même façon, les informations concernant les groupes se trouvent dans /etc/group. Ce fichier comporte 4 champs séparés par ":".

  1. nom du groupe
  2. mot de passe du groupe (ou x si le fichier gshadow existe)
  3. le GID
  4. liste des membres séparés par une virgule

Exemple : un enregistrement de /etc/group

Comme pour les utilisateurs, le fichier /etc/gshadow est créé si vous utilisés les mots de passe cachés (shadow) pour les groupes. Voici les commandes utilisées pour passer d'un système avec à sans mots de passe cachés :

Les fichiers /etc/login.defs et /etc/skel/*

Le fichier /etc/login.defs contient les informations suivantes :

Le répertoire /etc/skel contient les fichiers qui sont copiés dans le répertoire utilisateur à la création des nouveaux comptes : .bashrc, .bash_profiles, etc.

Options des commandes

useradd (options)

Option

Définition 

-c

commentaire (Nom complet)

-d

chemin vers le répertoire personnel

-g

groupe initial (GID). le groupe doit exister

-G

liste des groupes supplémentaires séparés par une virgule

-u

UID utilisateur

-s

interpréteur de commande (shell) par défaut

-p

mot de passe chiffré, comme renvoyé par crypt

-e

date d'expiration du compte

-k

répertoire squelette

-n

désactiver le mode UPG (NdT : cette option n'est plus dans l'actuel page de manuel

groupadd (options)

Option

Définition

-g

valeur numérique de l'identifiant (GID)

Modification sur les comptes et paramètres par défaut

Toutes les options par défaut à la création des comptes utilisateurs ou des groupes peuvent être modifiées. Voici les principales options de la commande usermod.

usermod (options)

Option

Définition

-d

répertoire utilisateur

-g

définit le GID principal

-l

identifiant utilisateur

-u

UID utilisateur

-s

interpréteur par défaut

Comme vous l'aurez remarqué, ce sont les mêmes options que pour useradd.

De la même façon, vous pouvez modifier les paramètres des groupes avec la commande groupmod. Il y a principalement deux options :

groupmod (options)

Option

Définition

-g

GID

-n

nom du groupe

Verrouiller un compte

On peut verrouiller un compte utilisateur en préfixant son mot de passe dans /etc/passwd par un "!". C'est ce que font les commandes suivantes :

Verrouiller

Déverrouiller

passwd -l

passwd -u

usermod -L

usermod -U

Si vous utilisez les mots de passe masqués (shadow), remplacez x par un *.

Il est également possible de supprimer le mot de passe avec passwd -d.

Enfin, on peut attribuer l'interpréteur /bin/false à l'utilisateur dans /etc/passwd.

Modification de l'expiration du mot de passe

Par défaut, le mot de passe utilisateur est valide pendant 99999 jours, soit 2739 années (PASS_MAX_DAYS par défaut). L'utilisateur est prévenu pendant 7 jours que son mot de passe va expirer (PASS_MAX_AGE par défaut) avec le message suivant à la connexion :

Warning: your password will expire in 6 days

Il y a une autre règle sur l'expiration des comptes, PASS_MIN_DAYS : c'est le nombre de jour minimum avant que l'utilisateur puisse changer son mot de passe. Par défaut, sa valeur est de 0.

La commande chage est utilisée par les administrateurs pour changer ces options :

Syntaxe :

 chage [options] [IDENTIFIANT]

Option

Définition

-d

fixer la dernière modification du mot de passe

-E

fixer la date de fin de validité du compte

-I

fixer la durée d'inactivité du mot de passe après sa fin de validité à INACTIF

-l

afficher les informations concernant la validité du compte au cours du temps

-m

fixer le nombre minimum de jours avant la modification du mot de passe

-M

fixer le nombre maximum de jours avant la modification du mot de passe

-W

fixer le nombre de jours d'avertissement

La date est soit en jours UNIX, soit au format YYYY/MM/DD.

Toutes ces valeurs sont dans le fichier /etc/shadow et peuvent être modifiées manuellement.

Suppression d'un compte

On peut supprimer un compte utilisateur avec la commande userdel. Pour vous assurer de la suppression du répertoire utilisateur, utilisez la l'option -r.

Exercices

  1. Création des utilisateurs
    • utilisez adduser pour créer l'utilisateur tux avec pour UID 600 et pour groupe 550.

    • modifiez le répertoire utilisateur avec usermod :

      • devez-vous créer le nouveau répertoire ?
      • est-ce que le contenu de /etc/skel est copié dans ce nouveau répertoire ?

      • l'utilisateur tux peut-il encore accéder à son ancien répertoire personnel ?
    • ajoutez tux au groupe wheel avec la commande usermod

  2. Travail avec les groupes
    • créez le groupe ventes avec groupadd

    • ajoutez tux à ce groupe avec gpasswd

    • connectez-vous en tant que tux et rejoignez le groupe ventes avec newgrp

  3. Fichiers de configuration
    • ajoutez un utilisateur en modifiant les fichiers /etc/passwd et /etc/group

    • créez le groupe partage et ajoutez tux à ce groupe en modifiant /etc/group

  4. Modification d'un compte
    • changez la date d'expiration du compte de tux avec usermod

    • verrouillez ce compte (par une commande ou en éditant /etc/shadow)
    • empêchez l'utilisateur de se connecter en changeant son interpréteur de commande à /bin/false

    • passez la valeur de PASS_MAX_DAYS pour l'utilisateur tux à 1 dans /etc/shadow

  5. Modification des paramètres par défaut
    • modifiez les paramètres système par défaut avec useradd -D de façon à ce que chaque nouvel utilisateur utilise /bin/sh au lieu de /bin/bash (notez que cela modifiera le fichier de /etc/defaults)

    • modifiez /etc/login.defs et changez la valeur PASS_MAX_DAYS de façon à ce que les nouveaux utilisateurs doivent changer leur mot de passe tous les 5 jours

Page consultée 483 fois