0% ont trouvé ce document utile (0 vote)
72 vues32 pages

Gestion des Utilisateurs et Groupes Linux

Ce document décrit les principes de base de l'administration des utilisateurs sur un système Linux/Unix. Il explique les concepts d'identification, d'authentification, d'utilisateurs, de groupes, de mots de passe et les fichiers associés comme /etc/passwd et /etc/shadow.

Transféré par

Abir Zahraoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
72 vues32 pages

Gestion des Utilisateurs et Groupes Linux

Ce document décrit les principes de base de l'administration des utilisateurs sur un système Linux/Unix. Il explique les concepts d'identification, d'authentification, d'utilisateurs, de groupes, de mots de passe et les fichiers associés comme /etc/passwd et /etc/shadow.

Transféré par

Abir Zahraoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Administration

Système

Pr. Ahmed Azouaoui


[Link]@[Link]

1
Administration des
utilisateurs

2
Principe
Identification et authentification

• L’identification, c’est savoir qui est qui, afin de


déterminer les droits de la personne qui se
connecte. Un utilisateur est identifié par un login.
• L’authentification, c’est apporter la preuve de
qui on est, par exemple via un secret partagé
entre l’utilisateur et le système, et connus d’eux
seuls. L’utilisateur est authentifié par un mot de
passe.

3
Principe
Les utilisateurs
Un utilisateur est l’association d’un nom de connexion, le
login, à un UID et au moins un GID.
• UID : User ID.
• GID : Group ID.
Les UID et les GID sont en principe uniques. Le login est
unique. Il est cependant envisageable d’associer plusieurs
logins au même UID, le système travaillant parfois avec le
login.

L’UID identifie l’utilisateur (ou le compte applicatif) tout au


long de sa connexion. Il est utilisé pour le contrôle de ses
droits et de ceux des processus qu’il a lancé. Ce sont les UID
et GID qui sont stockés au sein de la table des inodes, dans
la table des processus, etc., et non les logins.
4
Principe
Les utilisateurs
L’utilisateur dispose des attributs de base suivants :
• un nom de connexion appelé le login
• un mot de passe
• un UID
• un GID correspondant à son groupe principal
• un descriptif
• un répertoire de connexion
• une commande de connexion

5
Principe
Les utilisateurs
• D’autres attributs sont disponibles via l’utilisation de la sécurité des mots de
passe via shadow.

• Les UID d’une valeur inférieure à 500 sont en principe associés à des comptes
spéciaux avec des droits étendus. Ainsi l’UID de root, l’administrateur, est 0.
Selon les distributions, à partir de 100, 500 ou 1000, et ce jusqu’à environ 60000,
ce sont les UID des utilisateurs sans pouvoirs particuliers.

• Un login a en principe une taille de 8 caractères. En fait unix et d’autres systèmes


acceptent une taille plus grande, mais avec la plupart des commandes
l’affichage, voire la gestion des logins, est limité à 8 caractères.

• Un login accepte la plupart des caractères. Il ne doit pas commencer par un


chiffre. Il est possible de modifier la liste des caractères autorisés et de forcer la
longueur et la complexité via les mécanismes d’authentification PAM (Pluggable
Authentication Modules) et le fichier /etc/[Link].

6
Principe
Les groupes
Chaque utilisateur fait partie d’au moins un groupe.
Un groupe regroupe des utilisateurs.
Comme pour les logins, le GID du groupe
accompagne toujours l’utilisateur pour le contrôle de
ses droits.
Un utilisateur peut faire partie de plusieurs groupes,
auquel cas il faut distinguer son groupe primaire des
groupes secondaires.
Les groupes ont aussi des numéros. Il existe des
groupes spécifiques pour la gestion de certaines
propriétés du système et notamment l’accès à certains
périphériques.
7
Principe
Groupes primaires

Un groupe peut être primaire pour un utilisateur et secondaire pour


un autre.

Groupe primaire : groupe associé à un utilisateur après son


authentification

=> tout fichier crée par l'utilisateur prendra le GID du groupe


primaire de l'utilisateur comme identifiant de groupe.

Le groupe primaire est défini dans la table passwd.


Principe
Groupe secondaire

Groupe secondaire : groupes supplémentaires auxquels


appartient l'utilisateur.

Les groupes secondaires sont définis dans la table group.


Principe
Les groupes
La commande id permet de connaître les informations
essentielles sur un utilisateur : uid, gid, groupes secondaires.
$ id seb
uid=1000(seb) gid=100(users)
groupes=100(users),16(dialout),3(sys),33(video)

Un fichier est créé par seb. Son propriétaire est seb et son
groupe est le groupe principal de seb : users.
$ touch test
$ ls -l test
-rw-r--r-- 1 seb users 0 avr 10 14:30 test
10
Principe
Les mots de passe
Les mots de passe permettent d’authentifier les
utilisateurs.
Ils doivent être assez complexes pour ne pas être
découverts facilement, mais assez intuitifs pour qu’ils
s’en souviennent.
Les mots de passe sont cryptés (MD5, DES par
exemple) et ne sont pas directement lisibles sous leur
forme cryptée par l’utilisateur afin que personne ne
puisse tenter de le décrypter via un quelconque
traitement.
11
Principe
Les mots de passe
Un utilisateur devrait changer régulièrement son mot
de passe, ne jamais l’écrire quelque part ni le
conserver sur lui.
Vous verrez par la suite qu’il est possible de
contraindre l’utilisateur à appliquer des règles de
nommage et de durée de conservation.

12
Principe
Les mots de passe
Voici par exemple le résultat crypté par Blowfish
(reconnaissable par le $2a$ commençant la chaîne)
d’un mot de passe :
aher874oP47 vaut
$2a$10$CqutecUAlTGSFs2BPnVl..ntI8OEdy5j6gLI/cI
KhHP4XZISdlGZO

13
Fichiers
/ e t c / p a s s wd
• Le fichier /etc/passwd contient la liste des
utilisateurs du système local.
• Il est lisible par tout le monde.
• Les informations qu’il contient sont publiques et utiles
tant pour le système que pour les utilisateurs.
• Chaque ligne représente un utilisateur et est
composée de sept champs.

14
Les fichiers
/e t c/p a s s wd
Login:password:UID:GID:comment:homedir:shell

• Champ 1 : le login ou nom d’utilisateur.


• Champ 2 : le mot de passe crypté. Si un x est présent, le mot de passe est
placé dans /etc/shadow. Si c’est un point d’exclamation le compte est
verrouillé.
• Champ 3 : le User ID.
• Champ 4 : le GID, c’est-à-dire le groupe principal.
• Champ 5 : un commentaire ou descriptif. C’est un champ d’information.
• Champ 6 : le répertoire de travail, personnel, de l’utilisateur. C’est le
répertoire dans lequel il arrive lorsqu’il se connecte.
• Champ 7 : le shell par défaut de l’utilisateur. Mais ce peut être toute autre
commande, y compris une commande interdisant la connexion /bin/false
pour interdire l'utilisation du shell (sur un serveur).

15
Fichiers
/ e t c / g r o up
Le fichier /etc/group contient la définition des groupes
d’utilisateurs et pour chacun la liste des utilisateurs
dont il est le groupe secondaire. Chaque ligne est
composée de quatre champs :
Group:password:GID:user1,user2,...

• Champ 1 : le nom du groupe.


• Champ 2 : le mot de passe associé.
• Champ 3 : le Group Id .
• Champ 4 : la liste des utilisateurs appartenant à ce
groupe. 16

Fichiers
/ e t c / s h a d ow
• Le fichier /etc/shadow accompagne le fichier
/etc/passwd. C’est là qu’est stocké, entre autres, le
mot de passe crypté des utilisateurs.
• Pour être plus précis il contient toutes les
informations sur le mot de passe et sa validité dans le
temps.
• Chaque ligne est composée de 9 champs séparés
par des :

17
Fichiers
/etc/shadow
bean:$2a$10$AjADxPEfE5iUJcltzYA4wOZO.f2UZ0qP/8EnOFY.P.m10HifS7J8i:1[Link]
• Champ 1 : le login.
• Champ 2 : le mot de passé crypté. Le $xx$ initial indique le type de cryptage.
• Champ 3 : nombre de jours depuis le 1 er janvier 1970 du dernier changement de mot de
passe.
• Champ 4 : nombre de jours avant lesquels le mot de passe ne peut pas être changé (0 : il peut
être changé n’importe quand).
• Champ 5 : nombre de jours après lesquels le mot de passe doit être changé.
• Champ 6 : nombre de jours avant l’expiration du mot de passe durant lesquels l’utilisateur doit
être prévenu.
• Champ 7 : nombre de jours après l’expiration du mot de passe après lesquels le compte est
désactivé.
• Champs 8 : nombre de jours depuis le 1 e r janvier 1970 à partir du moment où le compte a
été désactivé.
• Champ 9 : réservé.

18
Gestion des utilisateurs
Ajout
La création d’un utilisateur pourrait être entièrement
effectuée à la main car Linux (et les autres Unix)
s’appuient sur une suite de commandes qui ne font «
que » modifier des fichiers plats déjà existants et qui
créent et recopient des fichiers et dossiers au bon
endroit avec les bons droits.

19
Gestion des utilisateurs
Ajout
La création d’un utilisateur consiste à :
• rajouter une ligne dans /etc/passwd,
• rajouter d’une ligne dans /etc/shadow,
• rajouter d’éventuelles informations dans /etc/group,
• créer le répertoire personnel et mettre à jour son
contenu avec /etc/skel,
• changer les permissions et le propriétaire du
répertoire personnel,
• changer le mot de passe (encodé).
20
Gestion des utilisateurs
Ajout
Tout ceci peut être effectué avec la commande
useradd. Elle ajoute un nouveau compte et effectue
les principales opérations :
• création de l’utilisateur et remplissage des fichiers,
• création d’un groupe privé d’utilisateur (de même nom
que celui-ci),
• création du répertoire personnel, remplissage et
modification des droits.
Si aucune option n’est précisée, les valeurs par défaut
sont récupérées au sein du fichier /etc/default/useradd
21
Gestion des utilisateurs
Ajout
Les options principales suivantes sont acceptées :

22
Gestion des utilisateurs
Ajout
La commande suivante crée le compte robert avec la
plupart des options de base précisées. C’est juste un
exemple car, sauf parfois le -m, si vous ne précisez
rien ce sont les options par défaut par rapport à celles
précisées dans le fichier /etc/default/useradd.
# useradd -m -u 1010 -g users -G video,dialout,lp -s
/bin/bash -d /home/robert -c "Compte de Robert"
robert
# grep robert /etc/passwd
robert:x:1010:100:Comptede
Robert:/home/robert:/bin/bash 23
Gestion des utilisateurs
Ajout
La commande ne crée pas de mot de passe. Il faut le faire à
la main avec la commande passwd.
# passwd robert
Changing password for robert.
Nouveau mot de passe :
Retaper le nouveau mot de passe :
Mot de passe changé.

24
Gestion des utilisateurs
Sécurité des mots de passe
Changer de mot de passe
La commande passwd permet de gérer les mots de
passe mais aussi les autorisations de connexion et la
plupart des champs présents dans /etc/shadow.
Tout utilisateur a le droit de changer son mot de passe,
dans le délai précisé par le champ 4 de /etc/shadow.
L’action par défaut est de changer le mot de passe de
l’utilisateur courant. L’ancien mot de passe est
demandé par sécurité (notamment pour empêcher une
personne mal intentionnée de modifier votre mot de
passe derrière votre dos). La saisie est masquée. 25

Gestion des utilisateurs
Sécurité des mots de passe
Changer de mot de passe
$ id
uid=1000(seb) gid=100(users) …
$ passwd
Changing password for seb.
Ancien mot de passe :
Nouveau mot de passe :
Retaper le nouveau mot de passe :
Mot de passe changé.
26
Gestion des utilisateurs
Sécurité des mots de passe
Changer de mot de passe
Les modules PAM (Pluggable Authentification Module) peuvent imposer des contraintes plus
ou moins sévères pour le choix du mot de passe : de telle longueur, pas basé sur un mot du
dictionnaire, etc. Voyez ce qu’il se passe en tentant d’utiliser successivement toto (trop court),
azerty (trop long) et Martine (dictionnaire) :
$ passwd
Changing password for seb.
Ancien mot de passe :
Nouveau mot de passe :lundi
Mot de passe incorrect : trop court
Nouveau mot de passe :12345
Mot de passe incorrect : trop simple
Nouveau mot de passe :qwerty
Mot de passe incorrect : basé sur un mot du dictionnaire
passwd: Nombre maximum de tentatives épuisées pour le service 27
Gestion des utilisateurs
Sécurité des mots de passe
Changer de mot de passe
L’utilisateur root a le droit de modifier les mots de passe de tous les utilisateurs du système,
sans avoir à connaître le précédent mot de passe. Mieux : il peut forcer l’utilisation d’un mot
de passe même si celui-ci n’est pas validé par PAM :
# passwd seb
Changing password for seb.
Nouveau mot de passe :
Mot de passe incorrect : basé sur un mot du dictionnaire
Retaper le nouveau mot de passe :
Mot de passe changé.

28
Gestion des utilisateurs
Sécurité des mots de passe
Gérer les informations de validité
Tous les champs de /etc/shadow peuvent être modifiés par la commande passwd. Voici
quelques options

29
Gestion des utilisateurs
Sécurité des mots de passe
Gérer les informations de validité
Dans l’exemple suivant le compte bean est modifié comme ceci :
• Il doit attendre 5 jours après saisie d’un nouveau mot de passe pour pouvoir le changer,
• Son mot de passe est valide 45 jours,
• Il est prévenu 7 jours avant qu’il doit changer de mot de passe,
• S’il ne change pas de mot de passe après 45 jours, il dispose encore de 5 jours avant d’être
désactivé.
# passwd -n 5 -x 45 -w 7 -i 5 bean
Password expiry information changed.
Voici la ligne de /etc/shadow associée.
bean:$2a$10$dwbUGrC75bs3l52V5DHxZefkZyB6VTHsLH5ndjsNe/vF/HAzHOcR2:13
[Link]

30
Gestion des utilisateurs
Sécurité des mots de passe
Gérer les informations de validité
Les détails sont bien plus lisibles avec chage qu’avec passwd :
# passwd -S bean
bean PS 04/10/2008 7 40 10 5
# chage -l bean
Minimum: 7
Maximum: 40
Warning: 10
Inactive: 5
Last Change: avr 10, 2008
Password Expires: mai 20, 2008
Password Inactive: mai 25, 2008
Account Expires: jan 01, 2010
31
Gestion des utilisateurs
Modification
Utilisez la commande usermod pour modifier un compte. Elle prend la même syntaxe et les
mêmes options que useradd mais dispose aussi d’une syntaxe complémentaire qui nécessite
quelques précisions.

Ex : Changer l'utilisateur toto en titi et changer son /home/toto en /home/titi


# usermod -d /home/titi -m -l titi toto 32

Vous aimerez peut-être aussi