Administration syst me et s curit sous LINUX
La gestion des utilisateurs Et des groupes
Par : L quipe
administration et
s curit LINUX
1
1
Pr ambule
La compr hension et
la gestion des comptes
utilisateurs constituent un sujet tr s important pour
l'administration et
la s curit des syst mes Unix
m me si on est la seule personne lutiliser.
Limportance est dautant plus cons quente si
la
machine h berge plusieurs comptes de plusieurs
personnes.
2
Objectifs
La maitrise de ces diff rentes t ches dadministration :
La gestion des utilisateurs,
La gestion des groupes,
Les droits dacc s des utilisateurs.
3
Pr requis
4
Lidentification et lauthentification
L'acc s aux services du syst me repose sur deux op rations
essentielles :
L'op ration d'identification consiste annoncer qui on est,
afin de permettre au syst me de d terminer les permissions
auxquels on a droit.
L'op ration d'authentification consiste prouver qu'on
est bien celui qu'on pr tend tre. Le syst me refuse ses
services tout utilisateur inconnu ou qui n'a pas pass avec
succ s la phase d'authentification.
5
M canisme dauthentification
INIT : cr e un terminal
fils
1
2
Terminal : Attente du
nom dutilisateur
5
Login : Sortie
3
Terminal : saisie du
nom dutilisateur et
Lancement du
programme login
4
Login : Saisie de mot
de passe
?
5
6
Non
concordance
Oui
1:init lance un terminal (processus getty)
2: le programme getty demande le nom
de l'utilisateur,
3: le processus getty passe ce nom au
programme login qui
l'authentifie en lui
demandant son mot de passe.
4: authentification de lutilisateur afin de
donner chacun les droits d'acc s aux
diff rents services du syst me en fonction
de ses privil ges.
5: lancement du programme shell pr f r
de lutilisateur et chargement des fichiers
denvironnement
(si oui) ou redonner la
main au processus init (sinon)
Login : lancement du
shell
6: Une fois la session est termin e (fin du
shell), init relance un nouveau terminal.
Shell : ex cution des
commandes
Shell : sortie
NB : Les processus (getty -> login ->
shell ) se substituent, cela veut dire
quil garde le m me PID et cest ainsi
que
dune
connexion,
reconnait
init
fin
la
6
Principe dun utilisateur
Un utilisateur est lassociation dun nom de connexion (le
login), un UID et au moins un GID.
UID : User ID.
GID : Group ID.
Le login, le UID et le GID sont uniques.
7
Types dutilisateurs
Il existe trois types dutilisateurs sur le syst me :
Ladministrateur
Appel aussi le root, il poss de le contr le total sur le syst me.
Les utilisateurs applicatifs
Leur principal int r t est de faciliter la gestion des droits d'acc s
des applications et des d mons. (exemple: un compte nomm
mail)
Les simples utilisateurs:
Ce sont des comptes permettant aux utilisateurs de se connecter
et d'utiliser les ressources de la machine.
8
Le LOGIN
Le login contient en principe 8 caract res
Il doit commencer par une lettre et comporte au maximum 32
caract res,
Lutilisation des caract res sp ciaux est d conseill e dans le
nom dutilisateur tel que (_) , (.), lespace&
Le login est sensible la casse, les utilisateurs esprit et
Esprit sont diff rents
9
Le UID (User IDentifier)
LUID est un entier strictement positif
Il sert identifier lutilisateur (ou le compte applicatif) tout au
long de sa connexion.
Les UID dune valeur inf rieure 100 sont associ s des
comptes sp ciaux avec des droits tendus.
Seul le UID 0 et le GID 0 sont standardis s et qui identifie le
root
Selon les distributions, partir de 100, 500 ou 1000, et ce
jusqu environ 60 000, ce sont les UID des utilisateurs sans
pouvoirs particuliers.
10
Les groupes(1/3)
Un groupe est un ensemble dutilisateurs qui partagent les
m me ressources sur le syst me, et sont identifi s par un GID
Chaque utilisateur fait partie dau moins un groupe.
Comme pour les logins, le GID du groupe accompagne toujours
lutilisateur pour le contr le de ses droits.
Un utilisateur peut faire partie de plusieurs groupes,
Il existe deux types de groupes pour un utilisateur : le groupe
primaire et les groupes secondaires.
11
Publicité
Types des groupes (2/3)
Le groupe primaire est celui qui est toujours appliqu la
cr ation dun fichier.
Si lutilisateur esprit a pour groupe primaire users, alors les
groupe
esprit
comme
auront
cr s
fichiers
par
dappartenance users.
Un utilisateur dispose de tous les droits associ s ses groupes
secondaires.
Si esprit a comme groupe secondaire video et quun fichier
dispose des droits d criture pour ce groupe, alors esprit aura
le droit de modifier son contenu.
12
Les groupes (3/3)
La commande id permet de conna tre les informations
essentielles sur un utilisateur : uid, gid, groupes secondaires
Pour un fichier cr par esprit, son propri taire sera esprit et son
groupe sera le groupe principal de esprit : users.
13
Le GID (Group IDentifier)
Le GID cest un entier positif identifiant un groupe dutilisateurs
sur le syst me,
Si le groupe nest pas sp cifi au moment de la cr ation de
lutilisateur, deux strat gies sont employ es pour assigner un
groupe par d faut :
Le groupe par d faut est le m me pour tous, le groupe users avec
le GID 100
Le nom du groupe est semblable celui de login, cest la notion de
groupe priv par utilisateur (UPG user private group), cest la
strat gie la plus utilis e actuellement.
14
Les mots de passe (1/2)
Les mots de passe permettent dauthentifier les utilisateurs.
La saisie est masqu e (rien ne saffiche).
Ils doivent tre assez complexes pour ne pas tre d couverts
facilement, mais assez intuitifs pour que lutilisateur sen souviennent.
Les mots de passe sont crypt s (MD5, DES par exemple) et ne sont
pas directement lisibles sous leur forme crypt e par lutilisateur afin
que personne ne puisse tenter de le d crypter via un quelconque
traitement.
Un utilisateur devrait changer r guli rement son mot de passe.
15
Les mots de passe (2/2)
Il est possible de forcer la longueur et la complexit via les
m canismes dauthentification PAM et le fichier /etc/login.defs.
Ce fichier est galement consult afin de modifier
informations relatives aux utilisateurs (uid,gid,umask,&).
les
Exemple : /etc/login.defs
16
Les fichiers
/etc/passwd
/etc/group
/etc/shadow
17
Le fichier /etc/passwd (1/3)
Contient la liste des utilisateurs du syst me local.
Il est lisible par tout le monde.
Les informations quil contient sont publiques et utiles tant
pour le syst me que pour les utilisateurs.
Chaque ligne repr sente un utilisateur et comprend 7
champs, s par s par le symbole :
18
Le fichier /etc/passwd (2/3)
1
2
3
4
5
6
7
LOGIN : Nom de connexion de lutilisateur
Mot de passe chiffr par la fonction a sens unique crypt
ou md5. La valeur sp eciale < x > indique que le mot de
passe chiffr est stock dans /etc/shadow
UID : Num ro unique de lutilisateur
GID : Num ro unique du groupe principal de l'utilisateur
Commentaire : champ de renseignements qui contient
habituellement un descriptif de l'utilisateur
19
1
2
3
4
5
Le fichier /etc/passwd (3/3)
6
7
R pertoire personnel
: Cest un r pertoire attribu
lutilisateur afin de sauvegarder ces donn es personnelles (la
variable d'environnement $HOME indique le r pertoire
personnel de lutilisateur)
SHELL: Cest le programme ou la commande qui va tre
lanc suite la connexion au syst me. Il sagit g n ralement
dun interpr teur de commandes,
20
Le fichier /etc/group (1/2)
Ce fichier contient la d finition des groupes dutilisateurs
et pour chacun la liste des utilisateurs dont il est groupe
secondaire.
Chaque ligne est compos sur 4 champs :
1
2 3
4
1
2
Le nom du groupe
Le mot de passe du groupe
21
Le fichier /etc/group (2/2)
3
Le groupe identifier
4 La liste des utilisateurs appartenant ce groupe(secondaire).
NB :
Il est inutile de replacer dans le quatri me champ les utilisateurs ayant
ce groupe pour groupe principal, cest induit.
Le champ mot de passe pour les groupes est rarement utilis en
pratique:
Un utilisateur a le droit de changer de groupe afin de prendre un groupe
secondaire comme groupe principal avec la commande newgrp.
Dans ce cas, ladministrateur peut mettre en place un mot de passe sur
le groupe pour prot ger lacc s ce groupe en tant que groupe
principal .
22
Le fichier /etc/shadow (1/3)
Le fichier /etc/shadow accompagne le fichier /etc/passwd et sert stocker
le mot de passe crypt des utilisateurs.
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 :
1
2
3
4
5
6
9
7 8
23
Publicité
Le fichier /etc/shadow (2/3)
1
2
3
4
5
6
7
8
9
Le login
Le mot de passe crypt . Le $xx$ initial indique le type de cryptage.
Nombre de jours (depuis le 1 er janvier 1970) du dernier changement de mot
de passe.
Nombre de jours avant lesquels le mot de passe ne peut pas tre chang (0 :
il peut tre chang nimporte quand).
Nombre de jours apr s lesquels le mot de passe doit tre chang .
Nombre de jours avant lexpiration du mot de passe durant lesquels lutilisateur
doit tre pr venu.
Nombre de jours apr s lexpiration du mot de passe apr s lesquels le compte
est d sactiv .
Nombre de jours depuis le 1 er janvier 1970 partir du moment o le
compte a t d sactiv .
R serv .
24
Le fichier /etc/shadow (3/3)
Pour conna tre la date en fonction du 01/01/1970 utilisez la
commande date comme ceci, en ajoutant le nombre de jours
d sir :
25
La gestion des utilisateurs
26
Ajout dun utilisateur (1/4)
La cr ation dun utilisateur pourrait tre enti rement effectu e la main :
1- Rajouter une ligne dans /etc/passwd,
2- Rajouter dune ligne dans /etc/shadow,
3- Rajouter d ventuelles informations dans /etc/group,
4- Cr er le r pertoire personnel et mettre jour son contenu avec /etc/skel,
5- Changer les permissions et le propri taire du r pertoire personnel,
6- Changer le mot de passe (encod ).
NB: Le r pertoire /etc/skel est une squelette du r pertoire de connexion
des nouveaux utilisateurs.
27
Ajout dun utilisateur (2/4)
Toutes les tapes pr c dentes peuvent tre remplac es par la
commande useradd ,
Syntaxe :
$ useradd < options > nom_utilisateur
Description :
Elle ajoute un nouveau compte et effectue les principales op rations :
Cr ation de lutilisateur et remplissage des fichiers,
Cr ation dun groupe priv dutilisateur (de m me nom que celui-ci),
Cr ation du r pertoire personnel, remplissage et modification des droits.
28
Ajout dun utilisateur (3/4)
Options:
Loption Le r le
-m
-u
-g
-G
-d
-c
-k
-s
-p
-D
Cr e aussi le r pertoire personnel /home/login. Elle est parfois comprise par d faut.
Pr cise lUID num rique de lutilisateur.
Pr cise le groupe principal de lutilisateur, par GID ou par son nom
Pr cise les groupes secondaires de lutilisateur s par s par des virgules
Chemin du r pertoire personnel. G n ralement /home/<login>, mais nimporte quel
chemin peut tre pr cis .
Un commentaire associ au compte.
Chemin du r pertoire contenant le squelette de larborescence du r pertoire
utilisateur. Cest g n ralement /etc/skell.
Shell par d faut de lutilisateur.
Le mot de passe de lutilisateur.
Examiner les valeurs par d faut de la commande useradd
29
Ajout dun utilisateur (4/4)
N.B
Si aucune option nest pr cis e, les valeurs par d faut sont
r cup r es au sein du fichier /etc/default/useradd.
identifiant du groupe primaire
racine des r p. personnels
nb de jours avant destruction du compte
nb de jours avant expiration du mot de passe
shell de connexion attribu au compte
recopi s par d faut dans chaque r p. personnel
30
Exercice :
Donner la commande qui ajoute la ligne suivante dans le fichier
/etc/passwd
grep robert /etc/passwd
robert:x:1010:100:Compte de Robert:/home/robert:/bin/bash
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 .
31
Modifier le mot de passe (1/6)
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.
Laction par d faut est de changer le mot de passe de lutilisateur
courant.
Lancien mot de passe est demand par s curit .
Lutilisateur 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.
32
Modifier le mot de passe (2/6)
La commande passwd :
Syntaxe :
$ passwd <options> login
Description :
Permet le gestion des informations de validit
Tous les champs de /etc/shadow peuvent tre modifi s par la
commande passwd.
33
Modifier le mot de passe (3/6)
Options:
Option
R le
-l
-u
-d
-n <j>
-x <j>
Lock : verrouille le compte (! devant le mot de passe crypt ).
Unlock : d verrouille le compte. Il nest pas possible de d verrouiller
un compte qui na pas de mot de passe, il faut utiliser en plus -f pour
cela.
Supprime le mot de passe du compte.
Dur e de vie minimale en jours du mot de passe.
Dur e de vie maximale en jours du mot de passe.
-w <j>
Nombre de jours avant avertissement.
-i <j>
Publicité
D lai de gr ce avant d sactivation si le mot de passe est expir .
-S
Statut du compte.
34
Exercice
Le compte esprit doit tre modifi comme ceci :
" Il doit attendre 5 jours apr s saisie dun nouveau mot de passe pour
pouvoir le changer,
" Son mot de passe est valide 45 jours,
" Il est pr venu 7 jours avant qui l doit changer de mot de passe,
" Sil ne change pas de mot de passe apr s 45 jours, il dispose encore de
5 jours avant d tre d sactiv .
Donnez la commande passwd :
passwd -n 5 -x 45 -w 7 -i 5 esprit
Voici la ligne de /etc/shadow associ e.
esprit:$2a$10$dwbUGrC75bs3l52V5DHxZefkZyB6VTHsLH5ndjsNe/vF/HAzHOcR2
:13 984:5:45:7:5::
35
Modifier le mot de passe (4/6)
La commande chage permet de faire peu pr s la m me chose
que passwd.
Syntaxe :
$ chage <options> login
Description :
Elle nest accessible que par le root .
Lanc e sans autre argument que le login de lutilisateur, elle est interactive.
Notez la fin la possibilit de modifier la date du dernier changement du
mot de passe et une date fixe dexpiration du mot de passe (champ 8) :
36
Modifier le mot de passe (5/6)
Options:
Option
R le
-E
-M
-m
-W
-d
permet de fixer une date d'expiration sous la forme Unix standard
(nombre de jours depuis le 1er janvier 1970) ou sous la forme
YYYY/MM/DD
permet de changer la valeur du nombre maximal de jours de validit
du mot de passe.
permet de changer la valeur du nombre minimal de jours de validit
de mot de passe.
permet de changer le nombre de jours d'alerte avant un changement
obligatoire de mot de passe.
permet de changer la date de dernier changement de mot de passe
37
Modifier le mot de passe (6/6)
38
Modification dun utilisateur (1/2)
La commande usermod est utilis e pour modifier un compte.
Syntaxe :
$ usermod <options> login
Description :
Elle prend la m me syntaxe et les m mes options que
useradd mais dispose aussi dune syntaxe compl mentaire
39
Modification dun utilisateur (2/2)
Options:
Option
R le
-L
-U
verrouillage du compte, comme passwd -l .
D verrouillage du compte, comme passwd -u.
-e <n>
Expire : le mot de passe expire n jours apr s le 01/01/1970.
-u <UID>
Modifie lUID associ au login. Le propri taire des fichiers
appartenant lancien UID au sein du r pertoire personnel est
modifi en cons quence.
-l <login>
Modifie le nom de login.
-m
Move : implique la pr sence de -d pour pr ciser un nouveau
r pertoire personnel. Le contenu de lancien r pertoire est
d plac dans le nouveau.
40
Suppression dun utilisateur
Supprimez un utilisateur avec la commande userdel.
Par d faut le r pertoire personnel nest pas supprim .
Vous devez pour ceci passer loption -r.
userdel -r esprit
41
La gestion des groupes
42
Ajout dun groupe
Vous pouvez cr er un groupe directement dans le fichier /etc/group ou bien
passer par les commandes associ es.
La commande groupadd permet de cr er un groupe.
Sa syntaxe simple accepte largument -g pour pr ciser un GID pr cis.
Pour lister tous les groupes (primaire et secondaires) d'un utilisateur :
groups Salah
Esprit
Ecole
Admin
43
Modification dun groupe
La commande groupmod permet de modifier un groupe.
Syntaxe:
$ groupmod <options> nom_du groupe
Options:
Option
Role
-n <nom>
Renomme le groupe.
-g <GID>
Modifie le GID.
-A <user>
Ajoute lutilisateur sp cifi dans le groupe (groupe
secondaire).
-R <user>
Supprime lutilisateur sp cifi du groupe.
44
Suppression dun groupe
La commande groupdel supprime un groupe.
La commande v rifie dabord si le groupe que vous voulez supprimer est le
groupe principal dun utilisateur.
Dans ce cas le groupe ne peut pas tre supprim .
Il faut alors v rifier le syst me de fichiers pour supprimer toute trace de ce
groupe.
Exemple :
groupdel amis
45
Contr le du propri taire d'un fichier
La commande chfn (change full name) permet d'indiquer
dans le champ num ro 5 du fichier /etc/passwd diff rentes
informations sur un utilisateur.
Pour changer le propri taire d'un fichier ou d'un r pertoire, il
faut utiliser chown.
chown nom_user nom_fich
Pour modifier le groupe d'un fichier ou d'un r pertoire, il faut
utiliser chgrp.
chgrp nom_group nom_fich
46
R capitulatif
useradd,
usermod,
userdel
groupadd,
groupmod,
groupdel
gestion des comptes utilisateur
Publicité
gestion des groupes
passwd
changer le mot de passe d'un utilisateur
chfn,
id,
groups,
chage
utilitaires divers
47
Les droits tendus
48
Les droits tendus (SUID,SGID) (1/3)
Il est possible d tablir des droits dacc s tendus pour les
fichiers ex cutables.
Quand on applique ces droits une commande, cette derni re
sex cutera avec les droits du propri taire ou du groupe
dappartenance de la commande et non plus avec les droits
dutilisateurs layant lanc e.
49
Les droits tendus (SUID,SGID) (2/3)
Lexemple le plus simple est le programme passwd permettant de changer son
mot de passe. Si la commande tait ex cut e avec les droits dun utilisateur
classique, passwd ne pourrait pas ouvrir et modifier les fichier /etc/passwd et
/etc/shadow
Seul le root peut modifier le fichier. La commande passwd ne pourrait donc pas
modifier ce fichier pour un simple utilisateur.
50
Les droits tendus (SUID,SGID) (3/3)
Si on regarde les droit de la commande passwd :
Un nouveau droit est apparu: le droit s pour les droits de root, Ce
nouvel attribut permet
lex cution de la commande avec des
droits dacc s tendus. Pendant le traitement, le programme est
ex cut avec les droit du propri taire du fichier ou de son groupe
dappartenance,
Le droit s sur lutilisateur est appel le SUID-bit (Set User ID bit),
et sur le groupe GUID-Bit (Set Group ID bit),
51
Attribution des droits tendus (1/2)
La commande chmod permet de placer les SUID-Bit et GUID-Bit :
M thode litt rale :
chmod u+s commande
chmod g+s commande
M thode num rique :
Les valeurs octales sont 4000 pour le SUID-Bit et 2000 GUID-Bit.
chmod 4755 commande
chmod 2755 commande
52
Attribution des droits tendus (2/2)
NB:
Seul le propri taire ou ladministrateur peut attribuer ce droit.
Affecter le SUID ou le GUID na pas de sens que si les droits
dex cution ont pr alablement t tablis (attribut x sur le
propri taire ou le groupe).
Si ceux-ci ne sont pas pr sents, le s et remplac par S
53
Le sticky bit (1/2)
Le sticky bit (bit collant) permet daffecter une protection contre
leffacement du contenu dun r pertoire.
Prenant lexemple du r pertoire /tmp, tout les utilisateurs ont tous
les droits sur son contenu :
Dans ce r pertoire, tout le monde peut supprimer des fichiers y
compris ceux qui ne lui appartiennent pas.
54
Le sticky bit (2/2)
Le sticky bit appliqu un r pertoire, emp che cette manipulation.
Le fichier peut encore tre visualis et modifi , mais seul son
propri taire et le root peuvent le supprimer.
M thode litt rale
M thode num rique
En octal, on utilisera la valeur 1000 pour le sticky bit :
chmod 1777
/tmp
55
Environnement utilisateur
56
Les fichiers denvironnement (1/2)
Comme tout autre programme,
le shell se base sur des fichiers de
configuration. Pour le Bash, les deux types de fichiers de configuration utilis s
pour la personnalisation de l'environnement:
Les fichiers de configuration utilisateur se trouvant dans les r pertoires
personnels des utilisateurs (~/.bashrc et ~/.profile ou ~/.bash_profile ).
Ces deux fichiers sont sp cifiques chaque utilisateur et permettent
chacun d'entre eux de sp cifier leurs pr f rences personnelles
Les fichiers de configuration globaux se trouvant sous le r pertoire /etc
(/etc/profile et /etc/bashrc). Ce sont les fichiers de configuration dans
lesquels on d fini toutes les options communes tous les utilisateurs et ne
sont ditables que par un administrateur.
57
Les fichiers denvironnement (2/2)
Lors du d marrage dune session, le fichier de configuration
/etc/profile est ex cut , puis les fichiers de configuration
~/.bash_profile et ~/.bashrc sont ex cut s pour charger les
donn es personnelles de lutilisateur qui vient de se loguer.
Le fichier ~/.bash_profile n'est ex cut que lors d'un nouveau
login, alors que le fichier ~/.bashrc est ex cut chaque
nouveau lancement de bash.
58
Les variables denvironnement (1/3)
Variables dynamiques stockant des donn es et des options
de programmes, des informations sur lordinateur qui peuvent
tre
le
comportement de ces derniers selon la mani re appropri e
lenvironnement courant.
pour modifier
programmes
utilis es
par
les
L'utilisation de ces
chaque
programme, certaines variables d finissent des fonctions
pr cises:
variables est d finie par
59
Les variables denvironnement (2/3)
" PATH : indique la liste des chemins o trouver les programmes
lancer.
" SHELL : indique linterpr teur shell utilis par d faut.
" HOME : contient le chemin absolu vers le r pertoire personnel de
l'utilisateur connect .
" LOGNAME : pour le nom de l'utilisateur
" HISTFILE : pour le fichier historique.
" HISTSIZE : pour la limite de commandes historiques accessibles.
" EDITOR : pour l' diteur de ligne de commandes.
60
Les variables denvironnement (3/3)
Pour afficher la valeur d'une variable:
$ echo $VAR_ENV
Pour d clarer des variables denvironnement
$VARNAME=valeur
$export VARNAME
export rend la variable visible pour tous les shells et les programmes
Pour remplacer les deux commandes pr c dentes:
$export VARNAME=valeur
Pour effacer le contenu d'une variable
$unset VARNAME
Afficher toutes les variables d'environnements
$ env
61