Administration système et sécurité sous LINUX

Page 1 sur 61Lecteur de document UniversityLib

Administration système et sécurité sous LINUX

Administration, Sécurité, Systèmes UNIX · course

Browse all systèmes d'exploitation et cloud documents

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

Advertisement

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

Advertisement

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>

Advertisement

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

Advertisement

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