Gestion des groupes et des utilisateurs
État :
Sommaire
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 :
useradd [options] identifiant
Exemple : ajouter l'utilisateur rufus
useradd rufus
Si vous utilisez cette commande sans option, les valeurs par défaut sont utilisées. Vous pouvez afficher ces valeurs avec useradd -D
# useradd –D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel
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 :
passwd identifiant
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 :
traditionnellement, ce groupe principal est le même pour tous les utilisateurs, appelé "users" avec le GID (Group ID) 100. De nombreuses distributions Linux comme Suse et Debian (NdT : plus maintenant) adhèrent à cette convention.
RedHat a introduit la nouvelle convention de "groupes privés pour les utilisateurs" (User Private Group scheme - UPG) qui ne modifie pas la façon dont les comptes UNIX fonctionnent. Avec UPG, chaque utilisateurappartient à son propre groupe principal. Le groupe a le même nom que l'identifiant utilisateur (par défaut) et le GID est compris entre 500 et 60000 (comme les UIDs).
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 :
Liste des ids :
id uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys), 4(adm), 6(disk), 10(wheel), 600(sales)
Liste des groupes :
groups root bin daemon sys adm disk wheel sales
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
newgrp 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
groupadd 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
gpasswd -a rufus 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 :
- identifiant
- mot de passe (ou x, si le fichier shadow est utilisé)
- UID
- GID
- description de l'utilisateur
- répertoire personnel
- 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
george:$1$K05gMbOv$b7ryoKGTd2hDrW2sT.h:Dr G Micheal:/home/georges:/bin/bash
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 :
/usr/sbin/pwconv (passwd -> shadow)
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 :
/usr/sbin/pwunconv (shadow -> passwd)
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 ":".
- nom du groupe
- mot de passe du groupe (ou x si le fichier gshadow existe)
- le GID
- liste des membres séparés par une virgule
Exemple : un enregistrement de /etc/group
java:x:550:jade, eric, rufus
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 :
- crée le fichier /etc/gshadow
/usr/sbin/grpconv
- supprime le fichier gshadow
/usr/sbin/grpunconv
Les fichiers /etc/login.defs et /etc/skel/*
Le fichier /etc/login.defs contient les informations suivantes :
- la file de courrier électronique : MAIL_DIR
- les règles de validité des comptes : PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_MAX_LEN, PASS_WARN_AGE
- les valeurs minimales et maximales pour les UID utilisateurs avec useradd : UID_MIN, UID_MAX
- les valeurs minimales et maximales pour la création des groupes avec groupadd : GID_MIN, GID_MAX
- la création (ou non) du répertoire personnel de l'utilisateur quand on utilise useradd : CREATE_HOME
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.
userdel -r jade
Exercices
- 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
- 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
- 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
- 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
- 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 517 fois