Retourner au contenu. Retourner à la navigation

 

Module 1

by admin @ 23/02/2006

Chapitre 05 - Gestion des utilisateurs




1. Gestion des utilisateurs et groupe

1.1 Les utilisateurs

Unix est un système multi-utilisateurs. Plusieurs personnes peuvent l'utiliser de façon simultanée (dans le cas de configurations en réseau).

Pour le système, un utilisateur n'est pas obligatoirement une personne physique. Un utilisateur peut détenir des fichiers, exécuter des programmes ou encore déclencher automatiquement des fonctions systèmes.

Par exemple, un utilisateur peut être créé dans le seul but de détenir des fichiers publics. On parle alors de pseudo utilisateur.

Un utilisateur possède un nom d'utilisateur appelé aussi login lui permettant d'établir une connexion. Ce login est associé à un mot de passe personnel. Pour accéder aux ressources du système, l'utilisateur doit entrer la bonne paire login/mot de passe : c'est l'authentification(le login).

Les utilisateurs sont identifiés par le système grâce à un UID (identifiant d'utilisateur) unique. Cet identifiant est une valeur numérique.

1.1.1 Le fichier /etc/passwd

Le fichier /etc/passwd contient les informations relatives à tous les utilisateurs du système. On y touve leur :

  • login

  • mot de passe (chiffré)

  • UID

  • GID principal

  • nom complet et autres informations

  • répertoire principal

  • leur shell

La syntaxe de "/etc/passwd" est très simple, chaque ligne concerne un utilisateur. les différents champs sont séparés par des ":" :

login:mot-de-passe:UID:GID:info-utilisateur:répertoire-principal:shell

Détaillons les champs :

  • Login : c'est l'identifiant que doit entrer l'utlisateur pour s'authentifier. La convention veut qu'un utilisateur John Smith possède jsmith ou smith_j comme login.

  • Mot de passe : il est évident que le mot de passe n'apparait pas en clair dans le fichier, il est chiffré en md5. C'est la commande passwd qui s'occupe de chiffrer le mot de passe. Ce champ peut prendre plusieurs siginifications :

    • "*" : il est impossible de s'authentifier sur le système avec ce compte

    • "!!" : Le compte est désactivé

    • "x" ou "!" : le mot de passe est dans un fichier shadow (voir ci-après)

    • champ vide : Il n'y a pas de mot de passe pour ce compte.

  • UID : il s'agit de l'identifiant unique de l'utilisateur.

    • L'utilisateur root possède l'UID 0

    • Par convention, les UID inférieurs à 100 sont réservés aux comptes système.

  • GID : l'identifiant du groupe principal de l'utilisateur

  • Info utilisateur : des informations sur l'utilisateur. chaque information est séparée par une virgule (le nom complet, numéro de poste ...).

  • répertoire personnel : Il s'agit du répertoire dans lequel sont stockés les fichiers appartenant à l'utilisateur. En général de la forme /home/login.

  • shell : c'est l'interpréteur de commandes qui sera lancé après l'authentification.

1.1.2 Le fichier /etc/shadow

Le fichier /etc/passwd est accessible à tout le monde. en effet, certaines commandes ont besoin de connaitre la liste des utlisateurs ou la correspondance login/UID.

La présence du mot de passe dans /etc/passwd, même crypté, pose un problème de sécurité. La solution à ce problème est de stocker les mots de passe dans un fichier différent : /etc/shadow. Pour garantir la sécurité, seul l'administrateur peut le lire.

Note:

sous Linux, si le fichier /etc/shadow n'est pas utilisé, l'utilitaire pwconv permet, à partir d'un fichier /etc/passwd unique, de créer le fichier /etc/shadow qui lui correspond.

1.2 Les Groupes

Le fichier /etc/group contient les information relatives au groupes présents sur le système.

Voici sa syntaxe :

groupe:*:GID:utilisateurs
  • groupe : le nom du groupe

  • * : la présence de ce champ est lié aux anciennes versions d'Unix et n'est plus utilisé. Il peut rester vide ou contenir le caractère "*" ou "x".

  • GID : c'est l'identifiant unique du groupe sous la forme d'une valeur numérique.

  • utilisateur : il s'agit de la liste des utilisateurs appartenant au groupe. Ils sont séparés par des virgules :

  • compta:x:230:pierre,romain,jerome

1.3 Les commandes de gestion des utilsateurs

Afin de manipuler les fichiers passwd, shadow et group facilement, des commandes ont été crées. Elles automatisent les vérifications (l'utilisateur à créer existe-t-il déja ? le mot de passe est-il assez compliqué ?...) évitant ainsi toute erreur de saisie.

1.3.1 Ajouter un utilisateur

La commande useradd permet de créer un utilisateur :

useradd [options] login

Principales options de useradd

Option

Explication

-c commentaire

Informations concernant l'utilisateur (nom, poste)

-d répertoire

Chemin du répertoire personnel de l'utilisateur

-e date

Date d'expiration du compte. Le format est AAAA-MM-JJ

-f nombre de jours

C'est le nombre de jours suivant l'expiration du mot de passe après lequel le compte est désactivé. La valeur 0 permet de désactiver le compte dès que le mot de passe expire. La valeur -1 permet de désactiver cette caractéristique. La valeur par défaut est -1

-g groupe principal

Le nom du groupe ou le numéro du groupe de connexion initial de l'utilisateur. Le nom ou le numéro du groupe doivent exister. Le numéro de groupe par défaut est 1

-G groupes supplémentaire

Les autres groupes auxquels appartient l'utilisateur (séparés par des virgules)

-m

Le répertoire de l'utilisateur sera créé (par défaut, cela n'est pas fait)

-k [ répertoire ]

A utiliser si et seulement si l'option -m est présente. Permet de copier les fichiers et répertoires contenus dans le répertoire répertoire (/etc/skel si non spécifié) dans le répertoire de l'utilisateur

-p le mot de passe chiffré

Vous pouvez saisir le mot de passe en option. Il doit être chiffré (pour récupérer la version cryptée d'un mot de passe il faut utliser la bibliothèque crypt). Le comportement par défaut est de désactiver le compte

-s chemin vers un exécutable

Shell lancé à la connexion de l'utilisateur

-u uid

L'identifiant unique de l'utilisateur

Exemple : nous voulons créer l'utlisateur lambda :

  • commentaire : "utilisateur lambda"

  • son shell : /bin/zsh

  • son répertoire personnel : /home/lambda

  • nous recopions le contenu de /etc/skel dans son répertoire

  • il appartient aux groupes "dev" et "final"

  • le compte sera désactivé immédiatement après expiration du mot de passe

root@localhost # useradd -c "utilisateur lambda" -f 0 -G final,dev -m -k /etc/skel -s /bin/zsh lambda

La commande useradd -D montre les options par défaut :

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel

Il est possible de changer les valeurs par défaut grace aux options suivantes :


Options de useradd -D

Option

Explication

-h répertoire

Répertoire dans lequel créer les répertoires utilisateurs

-e date

La date d'expiration du compte

-f nombre de jours

Délai de désactivation après expiration du mot de passe

-g GID

Le groupe par défaut

-s chemin vers un exécutable

Le shell par défaut

1.3.2 Suppression d'un utilisateur

La commande userdel permet de supprimer un utilisateur :

root@localhost # userdel options login

L'option -r efface le répertoire personnel de l'utilisateur.

1.3.3 Changer le mot de passe d'un utilisateur

La commande passwd permet de changer le mot de passe d'un utilisateur. L'administrateur peut changer n'importe quel mot de passe. Un utilisateur normal ne peut changer que son propre mot de passe.

passwd [ options ] [ login ]

Si l'argument login n'est pas spécifié, le changement de mot de passe s'applique sur l'utilisateur courrant.


Options passwd

Option

Explication

-k

Indique que seul le mot de passe doit être mis à jour sans toucher aux propriétés d'expiration

-l

Permet de verrouiller le compte spécifié en préfixant le mot de passe crypté par le caractère "!". Seul l'utilisateur root peut utiliser cette option

--stdin

Le mot de passe doit être lu à partir de l'entrée standard qui peut alors être un tube (pipe)

-u

Déverrouille le mot de passe du compte. Seul l'utilisateur root peut utiliser cette option

-d

Supprime le mot de passe d'un compte. Le champ réservé au mot de passe crypté sera supprimé dans le fichier de configuration. Seul l'utilisateur root peut utiliser cette option

-S

Affiche des informations sur le statut du mot de passe pour un compte donné. Seul l'utilisateur root peut utiliser cette option

1.3.4 Afficher des informations sur un utilisateur

Pour connaître l'identité de l'utilisateur courant (bien que cela soit affiché dans la majorité des prompts par défaut) on utilise la commande whoami.

Elle affiche le login de l'utilisateur courant. Les commandes who, users et w permettent de connaître les utilisateurs actuellement connectés sur la machine.

1.4 Les commandes de gestion des groupes

1.4.1 Créer un groupe

La commande groupadd permet de créer un nouveau groupe :

root@localhost # groupadd option groupe

Options de groupadd

Option

Explication

-g

Permet de choisir la valeur numérique du GID du nouveau groupe. Cet identifiant doit être unique

-r

Cette option permet d'ajouter un groupe système (dont le GID est inférieur à 500)

-f

Permet de stopper la commande lorsque le groupe ou le GID du nouveau groupe existe déjà

1.4.2 Suppression d'un groupe

Pour supprimer un groupe, on utilise la commande groupdel :

groupdel GID
Note:

on ne peut pas supprimer un groupe si c'est le groupe principal d'un utilisateur.

1.4.3 Modifier les groupes secondaires d'un compte

Pour modifier les groupes secondaire d'un utilisateur, on utilise la commande usermod qui est similaire à useradd et supporte les mêmes options :

root@localhost # usermod -G toto,users,fileshare,dev toto

Ceci permet d'ajouter l'utilisateur "toto" dans les groupes "toto", "users", "fileshare" et "dev".

Attention : lors de l'utilisation de la commande usermod -G il est nécessaire de rappeler l'ensemble de groupes secondaires auxquels appartient l'utilisateur.

On peut aussi ajouter et enlever des utilisateurs d'un groupe grâce à la commande gpasswd


Options de gpasswd

Option

Explication

-a

Ajout d'un utilisateur

-d

Suppression d'un utilisateur

1.4.4 Afficher des informations sur les groupes

Pour connaître les groupes auxquels appartient un utilisateur, on utilise la commande groups. Sans argument, elle affiche les groupes de l'utilisateur courant. Pour connaître less groupes d'un utilisateur particulier, il suffit de passer son login en argument de la commande :

root@localhost # groups
root wheel disk adm sys daemon bin
luser@localhost $ groups toto
toto users fileshare

Sur de très anciens SystemV, il n'était pas possible d'activer plusieurs groupes simultanément pour le même utilisateur. La commande id permet de connaître les groupes actifs :

root@localhost # id
uid=0(root) gid=0(root) groupes=0(root), 10(wheel),6(disk),4(adm),3(sys),2(daemon),1(bin)

Pour changer le groupe actif sur un tel système, on utilise la commande newgrp. Lorsqu'elle est utilisée sans argument, elle active le groupe principal de l'utilisateur (le groupp e qui figure dans "/etc/passwd").

1.5 Changer d'identité

Il se peut qu'un utilisateur soit obligé d'effectuer des tâches avec une identité différente. La situation la plus courante étant un utilisateur normal voulant effectuer quelques tâches en tant qu'administrateur.

La commande su (switch user), permet de changer d'identité:


Commande

Explication

su

Sans option, su permet de se connecter en tant qu'administrateur

su lambda

Agir en tant qu'utilisateur lambda

su - lambda

Se connecter en tant que lambda. Avec "-" on récupère tout l'environnement de l'utilisateur lambda

su -c "mount /dev/cdrom /mnt/cdrom"

l'option -c permet simplement d'exécuter la commande entre guillemet en tant que root (pas d'option). Une fois la commande terminée, on reprend son identit

Par admin Dernière modification 22/03/2007 15:52
Navigation
Actualités
15/09/2008 Sortie de la version VLC 0.9.2
23/06/2008 Opération du libre à Nantes !
23/06/2008 OpenSuse 11
18/06/2008 Firefox 3 !
09/06/2008 Linux Pratique Essentiel
Plus d'actualités...
Articles
22/05/2008 Première approche de Qmail
19/05/2008 Test de la distribution Elive 1.0 Gem
14/05/2008 GNUPG introduction à la cryptographie et utilisation de GnuPG
21/02/2008 GNU / Screen
03/09/2007 The Linux File System Encryption API
More articles
Tips
28/04/2008 Mozilla Firefox : Google Talk et Facebook Chat
22/04/2008 Sed : Rechercher du texte entre deux chaines de caractères
04/04/2008 Gérer son(ses) écran(s) avec xrandr
26/03/2008 Tips sur l'historique de vos commandes
13/02/2008 Linux-Unix Cheat Sheets
More tips
Codes
09/04/2008 Chapitre 13 - Administration DNS et DHCP
09/04/2008 Chapitre 06 - Service web avec Apache
04/04/2008 Chapitre 09 - PureFTPd
04/04/2008 Chapitre 06 - Scripting Bash
01/04/2008 Chapitre 20 - Haute Disponibilité
More codes
Courses
13/09/2006 Module 3
23/02/2006 Module 2
23/02/2006 Module 1
More courses
Formation Linux

Supinfo Training Center has the first Linux Certification. The training is 13 days and allow you to pass the LPI 101 and 102.

more info
 
 
Vous êtes ici :
Cours Module 1 Chapitre 05 - Gestion des utilisateurs