Module 6: Gestion des utilisateurs et des groupes Table des matières Concepts fondamentaux des comptes utilisateurs...2 Gestion des comptes...3 Créer un compte pour un nouvel utilisateur...3 Méthode rapide...3 Création d'un mot de passe...4 Méthode en utilisant les options plus détaillées...5 Supprimer le compte d'un utilisateur (non connecté)...7 Modifier le compte d'un utilisateur...7 Les groupes...8 Création d'un nouveau groupe...8 Supprimer un groupe...8 Le fichier des mots de passe...8 Structure de /etc/passwd...9 Structure de /etc/group...9 S420-KAC Module 6 Théorie - Gestion des usagers Page 1
Concepts fondamentaux des comptes utilisateurs Même si on est la seule personne à utiliser son système Linux, la compréhension et la gestion des comptes utilisateurs constituent un sujet très important pour l'administration du système. Et encore plus si la machine héberge plusieurs comptes de plusieurs personnes. Les comptes utilisateur servent à beaucoup de choses sur les systèmes UNIX et Linux : Ils permettent de distinguer les différents utilisateurs qui ont accès au système, pour des raisons de sécurité. Chacun d'eux possède un compte personnel, auquel il accède par un identifiant et un mot de passe secret. Ces utilisateurs peuvent définir des permissions d'accès à leurs données, afin d'en autoriser ou d'en interdire l'exploitation par les autres. Les comptes permettent l'authentification de chaque utilisateur accédant au système, ce qui permet bien d'autres actes de gestion tels que gérer les courriers électroniques des utilisateurs par exemple ou savoir qui a fait une bêtise en examinant les fichiers de trace du système. En dehors des comptes personnels, il existe des utilisateurs qui ne sont pas forcément des personnes physiques. Ces utilisateurs remplissent des fonctions administratives. C'est le cas du compte root utilisé par l'administrateur pour effectuer la maintenance par exemple. C'est aussi le cas des comptes en général destinés à des démons qui doivent avoir accès à certains fichiers sous une identification spécifique ('le compte news par exemple permet de recevoir les news Usenet en provenance d'un autre site. S420-KAC Module 6 Théorie - Gestion des usagers Page 2
Gestion des comptes Créer un compte pour un nouvel utilisateur La création d'un compte demande plusieurs opérations : l'ajout d'une entrée dans le fichier /etc/passwd, la création du répertoire personnel de l'utilisateur, et la mise en place de la configuration par défaut dans le répertoire de cet utilisateur. Nous verrons plus loin comment configurer les fichiers de base qui sont copiés dans les nouveaux comptes des utilisateurs. Méthode rapide Utilisez la commande «useradd» Exemple: sudo useradd luc Le système crée les informations de base pour l'usager. Il est à noter que le mot de passe n'est pas demandé à ce moment. Il faudra le créé avec la commande «passwd». Le système crée alors un usager dont le répertoire maison se trouve dans le répetoire /home. La figure ci-dessous nous montre le résultat: On peut remarquer que la 3e et 4e colonne porte le même nom dû au fait que, par défaut, le nom du groupe du nouvel usager créé porte le même nom que cet usager. S420-KAC Module 6 Théorie - Gestion des usagers Page 3
Création d'un mot de passe On doit ensuite créé un mot de passe pour le nouvel usager. Dans l'exemple précédent, nous allons ajouter un mot de passe pour l'usager luc : passwd luc La figure suivante illustre les propos: L'utilisateur luc peut maintenant utiliser son compte. ATTENTION : ATTENTION Lorsqu'un : utilisateur est créé, le système crée automatiquement un groupe portant le même Lorsqu'un nom utilisateur que le nom est du créé, compte. le système Ainsi, crée si l'usager automatiquement créé se nomme un groupe «luc», un portant groupe le «même luc» sera nom également que nom créé. du compte. Ce groupe Ainsi, ne si contiendra l'usager créé que se l'usager nomme «luc «luc».», un groupe «luc» sera également créé. Ce groupe ne contiendra que l'usager «luc». Le répertoire «maison» de l'usager est alors «/home/nom_compte» donc pour le compte Le répertoire «luc»,«son maison répertoire» de l'usager maison sera est alors «/home/luc «/home/nom_compte».» donc pour le compte «luc», son répertoire maison sera «/home/luc». S420-KAC Module 6 Théorie - Gestion des usagers Page 4
Méthode en utilisant les options plus détaillées Le tableau ci-dessous synthétise les options les plus utilisées de la commande useradd: Option -c commentaires -d rep_personnel -e date_expiration -f tps_inactivité -g groupe_initial -G liste -m -k squelette_rep Résumé Nom complet de l'utilisateur et des commentaires divers pour identifier un répertoire maison différent que celui par défaut (défaut: /home/nom_usager). Fixe la date d'expiration du compte (format MM/JJ/AA) Nombre de jours entre l'expiration et la désactivation permanente du compte Groupe d'affectation du compte. Doit exister avant la création du compte. Fixe l'appartenance de l'utilisateur à une liste de groupes secondaires (séparateur, sans espace) Le répertoire personnel sera créé s'il n'existe pas. L'option -k n'est valide qu'en conjonction avec l'option -m Recopie le contenu du répertoire squelette_rep dans le répertoire maison du nouvel usager; par défaut /etc/skel -s shell Attribution du shell. Par défaut c'est le bash -u uid Pour fixer l'identifiant uid à l'utilisateur S420-KAC Module 6 Théorie - Gestion des usagers Page 5
Exemple: Créer un compte nommé pierre dans le groupe devel, avec répertoire maison /home/devel/pierre. Étape 1: Étape 2: Étape 3: Créez le groupe devel en premier s'il n'existe pas déjà. sudo groupadd devel Créez ensuite la branche du répertoire parent du répertoire maison de l'usager. Par exemple, si le répertoire maison est le /home/devel/pierre, vous devez alors créer au moins le répertoire devel. sudo mkdir /home/devel Créez le compte de l'usager comme tel. sudo useradd -d /home/devel/pierre -g devel -s /bin/bash pierre Notez bien: l'utilisation de l'option -k n'est pas nécessaire puisque le système ira dans le répertoire /etc/skel par défaut de toute façon pour y copier les fichiers présents. Étape 4: Changez le mot de passe de l'usager. sudo passwd pierre Étape 1 : Création du groupe (si pas déja créé) [schasse@hawking ~]$ sudo groupadd devel [schasse@hawking ~]$ sudo groupadd devel Étape 2 : création du répertoire parent [sudo] password for schasse: Étape 4 :[schasse@hawking Création [sudo] password du mot de for ~]$ schasse: sudo mkdir /home/devel passe ~]$ sudo mkdir /home/devel [schasse@hawking ~]$ sudo useradd -d /home/devel/pierre -g devel -s /bin/bash pierre [schasse@hawking ~]$ sudo useradd -d /home/devel/pierre -g devel -s /bin/bash pierre [schasse@hawking ~]$ sudo passwd pierre Changement [schasse@hawking de mot de ~]$ passe sudo pour passwd l'utilisateur pierre pierre. Étape 3 : Création du compte Nouveau Changement mot de de passe mot de : passe pour l'utilisateur pierre. MOT Nouveau DE PASSE mot de INCORRECT passe : : Le mot de passe comporte moins de 8 caractères Retapez MOT DE le PASSE nouveau INCORRECT mot de passe : : Le mot de passe comporte moins de 8 caractères passwd Retapez : mise le nouveau à jour réussie mot de de passe tous : les jetons d'authentification. passwd : mise à jour réussie de tous les jetons d'authentification. S420-KAC Module 6 Théorie - Gestion des usagers Page 6
Supprimer le compte d'un utilisateur (non connecté). userdel [-r] Nom_Compte L'option «-r» supprime aussi le répertoire personnel et les fichiers de l'utilisateur. Exemple : Supprimer le compte «luc» sans supprimer ses fichiers sur le disque. sudo userdel luc Supprimer le compte «luc» et le contenu de son répertoire maison. sudo userdel -r luc Modifier le compte d'un utilisateur usermod [options] nom_du_compte usermod -ag stagiaire,prof jean ajoute le compte «jean» dans les 2 groupes stagiaire et prof (qui doivent avoir été créé auparavant) Options: -a: -G: Ajouter l'utilisateur aux groupes supplémentaires. N'utilisez cette option qu'avec l'option -G. -G, --groups GROUPE1[,GROUPE2,...[,GROUPEN]]] Liste de groupes supplémentaires auxquels appartient également l'utilisateur. Chaque groupe est séparé du suivant par une virgule, sans espace entre eux. Les groupes sont soumis aux mêmes restrictions que celles de l'option -g. Ajouter des fichiers ou répertoires supplémentaires à la création d'un compte d'un utilisateur. Il s'agit ici d'utiliser le répertoire /etc/skel. En effet, ce répertoire contient tous les fichiers et répertoires que le système doit copier dans le répertoire maison d'un nouvel usager. Le répertoire qui contient les fichiers et les répertoires par défaut se nomme /etc skel. Ce sont les fichiers et répertoires que le système copie dans le répertoire maison de l'usager à la création de son compte. Pour y ajouter des fichiers selon vos besoins, il s'agit tout simplement de les ajouter dans le répertoire /etc/skel. Tous les fichiers ou répertoires ajoutés dans /etc/skel seront alors présent dans les prochains comptes qui seront créés. Si vous voulez utilisez un autre répertoire que /etc/skel, il est possible de le faire avec l'option -k de la commande useradd. S420-KAC Module 6 Théorie - Gestion des usagers Page 7
Les groupes Un groupe est un ensemble d'utilisateurs qui partagent les même fichiers et répertoires. Chaque utilisateur doit faire partie au moins d'un groupe, son groupe primaire. Celui-ci est défini au moment de la création du compte, et par défaut, l'utilisateur appartient à un nouveau groupe créé, portant son nom dont il est le seul usager. Ainsi, dans le fichier /etc/passwd chaque utilisateur possède un groupe par défaut, précisé par son identifiant gid dans ce fichier. L'appartenance au groupe primaire n'étant pas exclusive, tout utilisateur peut faire partie de plusieurs autres groupes, appelés ses groupes secondaires. Mais le rôle joué par le groupe primaire demeure prépondérant, comme nous l'avons vu dans le système des permissions des fichiers. Pour lister tous les groupes (primaire et secondaires) d'un utilisateur : groups nom_compte Création d'un nouveau groupe groupadd nom_groupe Supprimer un groupe groupdel nom_du_groupe Le groupe est supprimé du fichier /etc/group. Le fichier des mots de passe Tout ce qui concerne la gestion et l'authentification des utilisateurs est inscrit dans un seul fichier /etc/passwd La gestion des groupes est assurée par le fichier /etc/group Les mots de passe cryptés sont maintenant placés dans /etc/shadow, par sécurité lisible seulement par root. S420-KAC Module 6 Théorie - Gestion des usagers Page 8
Structure de /etc/passwd Une entrée dans ce fichier se présente ainsi: root :x :0 :0 :root:/root:/bin/bash Ce fichier comprend 7 champs, séparés par le symbole «"». De gauche à droite : 1. nom de connexion (root) 2. ancienne place du mot de passe crypté (le «x») 3. numéro d'utilisateur uid, sa valeur est le véritable identifiant pour le système Linux; l'uid de root est 0, le système attribut conventionnellement un uid à partir de 500 aux comptes créés. 4. numéro de groupe gid, dans lequel se trouve l'utilisateur par défaut; le gid de root est 0. 5. nom complet, il peut être suivi d'une liste de renseignements personnels 6. répertoire personnel (c'est également le rép. maison) («/root») 7. shell, interpréteur de commandes (par défaut /bin/bash) Structure de /etc/group Ce fichier comprend 4 champs, séparés par le symbole «:» 1. nom du groupe 2. x est le mot de passe pour changer de groupe et accéder à ce groupe. (par défaut, ce mot de passe n est pas utilisé) 3. numéro de groupe, c est-à-dire, l'identifiant gid 4. la liste des membres du groupe Commande chown : Change le propriétaire du fichier ou du répertoire. Commande chgrp : Change le groupe du fichier ou du répertoire. S420-KAC Module 6 Théorie - Gestion des usagers Page 9