Le Système GNU/Linux

Page 1 sur 68Lecteur de document UniversityLib

Le Système GNU/Linux

Operating Systems and GNU/Linux Administration · notes

Voir tous les documents en systèmes d'exploitation et cloud

Le Système GNU/Linux

Master Professionnel en Logiciels Libres (MP2L) Pr. Habib SMEI E-Mail :[email protected] / [email protected]

1

Chapitre 5 Système de Gestion de Fichiers

2

Fichiers

Fichier = Objet typé sur lequel on peut appliquer des opérations  Il a une signification plus large que celle connue usuellement (fichier disque).

Exemples : Fichier lecteur CD, Fichier imprimante, Fichier terminal, etc.

3

Fichiers

Le système GNU/Linux, attribue, pour chaque fichier, une

entrée appelée i-nœud (index node) dans une table

décrivant ses différentes propriétés.

Un fichier s'identifie, dans le système, au travers la

connaissance de l'identificateur de la table contenant ses

propriétés (appelée disque logique) et de l'indice dans

cette table de l'entrée contenant ces propriétés.

4

Système de Fichiers

C’est un ensemble de règles qui organisent la manière dont les

fichiers sont stockés et récupérés sur un disque dur ou sur

n’importe quel support de stockage. La disposition des

données sur un support est très structurée. Par exemple, on

part d’une racine qui abrite des répertoires qui, eux-mêmes

sont capables de contenir plusieurs niveaux de sous-

répertoires.

5

Partitionnement

– Le système GNU/Linux n'utilise pas une table de

fichiers mais plusieurs et chacune est relative à

une arborescence bien déterminée.

– L'accès à l'une des arborescences est possible

grâce au mécanisme de montage (mounting) : il

s'agit de créer un point d'accès à cette

arborescence à partir de la racine absolue du

système de fichiers.

6

Arborescence du système de fichiers

– La hiérarchie est normalisée

• Norme courante : FHS 2.2 (Filesystem Hierarchy

Standard). FHS 2.3 en cours … • http://www.pathname.com/fhs/

/

home

proc

usr

boot

lib

opt

dev

etc

var

Ftp … hb

bin lib man tmp

lib log run spool tmp

7

Les différents types de fichiers

1. Les fichiers réguliers

Fichiers disque, leur contenu n'est pas

nécessairement structuré : exécutables, programmes

en code source, données, etc.

2. Les fichiers répertoires

Ils permettent aux utilisateurs de désigner leurs

fichiers. Les répertoires suivants sont

particulièrement importants dans tout système

GNU/Linux:

8

Les différents types de fichiers

/bin et /usr/bin /dev /etc /home ou /users /tmp /boot /root /lib et /usr/lib

9

Les différents types de fichiers

3. Les fichiers spéciaux

Les fichiers spéciaux en mode bloc Comme les disques. Le transfert de données dans une opération d'entrée-sortie est réalisé par blocs (512 ou 1024 octets). Les fichiers spéciaux en mode caractère Comme les terminaux et les imprimantes. Ce type de périphériques transfère les données octet par octet et il n'y a pas d'utilisation de caches d'entrée-sortie.

10

Les différents types de fichiers

4. Les liens symboliques

Fichiers qui pointent sur d'autres fichiers (ou répertoires). Ces derniers peuvent exister ou non. Les liens symboliques et les fichiers (ou répertoires) peuvent appartenir, ou non, au même système de fichiers.

5. Les tubes nommés (fifo)

Permettent aux processus, n'ayant pas de liens de parenté, d'échanger des informations. (manipulés par des appels système open, read et write)

11

Les différents types de fichiers

6. Les sockets

Il s'agit d'objets permettant la communication

bidirectionnelle entre les processus. Les sockets permettent

aussi la communication entre des applications distantes

(applications réparties).

12

Notion d'i-nœud Un i-nœud contient, typiquement, les informations suivantes :

Le uid et le gid du fichier

 Le type du fichier

 Les droits d'accès des utilisateurs

 La taille du fichier (en octets)

 Le nombre de liens physiques sur le fichier

 Les dates du dernier accès et de dernière

modification du fichier

 L'adresse, sur disque, du fichier

13

Notion d'i-nœud

– Remarques importantes:

• Un i-nœud ne contient aucun nom pour le fichier

correspondant.

• Chaque utilisateur est caractérisé par un numéro

d'utilisateur et appartient à un groupe particulier (ou

à plusieurs). Pour tout fichier, GNU/Linux définit

trois classes d'utilisateurs: User (propriétaire) Group

(groupe auquel Є le propriétaire) et Others (autres

utilisateurs)

14

Commandes de base du système de gestion de fichiers

1. La commande pwd 2. La commande cd 3. La commande ls 4. La commande cat 5. La commande cp 6. La commande ln 7. La commande mv 8. La commande rm 9. la commande mkdir 10. La commande rmdir 11. La commande chmod 12. La commande umask

15

principaux répertoires du système

: Repertoire racine du système : Les commandes essentielles (binaires) : Contient les fichier du chargeur de boot (noyau vmlinuz, etc .) : Les fichiers de péripherique : Les fichiers de configuration du système : Les librairies essentielles et les modules du noyau : Point de montage pour montage temporaire de système de fichier : Lieu d'installation de logiciels additionnels : Les commande essentielle du système : Les données des services rendu par le système : Repertoire temporaire : Programmes accessibles à tout utilisateur : Pour les données variables : Système de fichier virtuel informations sur les processus et du

: Répertoire personnel des utilisateurs : Répertoire personnel du super Utilisateur

/ bin boot dev etc lib mnt opt sbin srv tmp usr var proc système home root

Permissions (droits d’accès)

 Types d’utilisateurs

– Owner ( Propriétaire ) u

– Group g

– Others (Le reste du monde) o

 Types de permissions

– Read ( Lecture ) r

– Write ( Ecriture ) w

– Execute ( Exécution ) x

17

Permissions (droits d’accès)

$ ls -l -rwxrwxrwx 1 user1 group 512 Mar 14 11:36 filename1

18

File TypeUser AccessGroup AccessOther AccessOctal4 2 14 2 14 2 1-r w xr w xr w xPosition12 3 45 6 78 9 10Read* * * Write * * * Execute * * *Permissions (droits d’accès)

 Permissions sur les répertoires

– Read

- Lister le répertoire (ls).

– Write

- Possibilité d’exécuter les commandes

cp, mv, rm dans le répertoire

– Execute - Possibilité d’utiliser la commande cd

dans le répertoire

19

Commandes sur les droits

chmod

Access_String

file . . .

 Change les permissions d’un fichier.

 Exécutée uniquement par le propriétaire.

 Méthode dite Access Strings :

Classe Combinaison de :

u g o a

Operateurs

+

+ Ajout de droits. - Retrait de droits. = Set (supprime anciens).

+

Type d’accès Combinaison de : r w x t s

20

Commandes sur les droits

$ chmod u=rwx,g=r,o-rwx filename1

$ chmod o+r filename1

$ chmod go+x filename1

21

Permissions par défaut

Quels sont les droits affectés à la création d'un fichier ou

d'un répertoire ?

La commande umask :

umask (pour afficher le masque)

umask  Détermine le masque de permissions lors de la création de fichiers ou

[mode]

répertoires – mode détermine les restrictions – Au plus élevé est le mode, au plus restrictives seront les permissions.

umask –S (pour afficher le masque sous forme symbolique)

Publicité

umask valeur_masque (pour modifier le masque)

$ umask 026 $ umask 077

22

Permissions par défaut

Changer les droits d'accès (session en cours) : Les permissions des fichiers ordinaires correspondent à la valeur du masque sur laquelle est fait un ou exclusif (XOR) avec la valeur 666.

Les permissions des répertoires correspondent à la valeur du masque

sur laquelle est fait un OU exclusif (XOR) avec la valeur 777. Le masque donné à la commande umask précise les droits qui seront supprimés à la création du fichier. Par exemple avec :

umask 021 (en binaire 000 010 001)

un répertoire créé avec ce masque obtiendra les droits suivants :

111 101 110 soit u=rwx gx=r o=rw

23

Permissions par défaut

Changer les droits d'accès : La modification des droits à l'aide de la commande umask a des effets seulement durant la session en cours.

Pour rendre cette modification permanente, il faut

modifier le script :

/etc/profile (par root pour le profil général) $HOME/.bash_profile (par l'utilisateur pour son profil)

ou Fichier « /etc/login.defs »  Modifier le paramètre UMAK

UMASK 027 (exemple)

24

Changement de propriétaire

 chown

Change le propriétaire du fichier

chown

new_owner file(s) . . .

 chgrp

Change le groupe du fichier

chgrp

new_group file(s) . . .

$ ls -l file1 -rwxr-xr-x 1 salah prog 512 Mar 14 11:36 file1 $ chgrp acct file1 $ chown hal file1 $ ls -l file1 -rwxr-xr-x 1 hal

acct 512 Mar 14 11:36 file1

25

Permissions (droits d’accès)

Les droits étendus

Le droit SUID Ce droit s'applique aux fichiers exécutables, il permet d'allouer temporairement à un utilisateur les droits du propriétaire du fichier, durant son exécution. Les utilisateurs exécutent des commandes qui écrivent dans des fichiers dont les droits sont en "lecture seule" ou "aucun". Par exemple : • La commande "cat /etc/shadow" exécutée par un

utilisateur entraînera un refus ("r - - - - - - - -").

• Par contre la commande /usr/bin/passwd permet à ce même utilisateur de modifier son mot de passe donc d'écrire dans le fichier /etc/shadow.

26

Permissions (droits d’accès)

Le droit SUID

- Les droits présentés par la commande

/usr/bin/passwd sont : r - s - - x - - x.

- L'utilisateur peut exécuter la commande ("x") mais il ne

peut pas écrire dans /etc/shadow

- Le "s" qui se superpose au droit "x" du propriétaire

root permet à l'utilisateur d’exécuter la commande avec

les droits du propriétaire root (le "s" ne supprime pas le

"x" qui est simplement caché).

27

Permissions (droits d’accès)

Positionner le droit SUID

La valeur en octal du droit SUID est 4000 (100 000 000 000).

Par exemple sur le fichier "commande" on souhaite

obtenir les droits : "r – s r – x - - -":

chmod 4550 commande

28

Permissions (droits d’accès)

Le droit SGID

Il donne à un utilisateur les droits du groupe auquel

appartient le propriétaire de l'exécutable et non plus les

droits du propriétaire de l’exécutable.

Ce droit a une tout autre utilisation s'il est appliqué à un

répertoire.

D'une façon générale, à la création d'un fichier, le groupe propriétaire est celui du propriétaire de l’utilisateur. Avec le droit SGID le groupe sera celui défini au niveau du répertoire père.

29

Permissions (droits d’accès)

Positionner le droit SGID • Un "s" se superpose ici au droit "x" du groupe

propriétaire d'un répertoire.

•

La valeur octal du droit SGID est 2000 (010 000 000 000).

Par exemple sur le répertoire"/home/doc" on souhaite

obtenir les droits :

- -

"drwxr-s- - -" :  chmod 2750 /home/doc "drwxr-S- - -" :  chmod 2740 /home/doc

30

Permissions (droits d’accès)

Le "sticky bit"

Ce droit s'applique aux répertoires et est symboliquement

représenté par un "t" à la place du "x" de la catégorie "o"

Ce droit permet d'interdire à un utilisateur de supprimer

un fichier dont il n'est pas propriétaire alors qu'il à le droit

d'écrire dans le répertoire (donc de supprimer).

31

Permissions (droits d’accès)

Positionner le "sticky bit"

La valeur octal de ce droit est 1000 (001 000 000 000).

Par exemple pour appliquer ce droit sur le répertoire

"/home/doc" et obtenir les droits : "drwxrwxrwt":

chmod 1777 /home/doc

32

Permissions (droits d’accès)

Remarque :

Si le droit "x" n'est pas accordé sous le droit "s" ou "t"

le droit étendu apparaît en majuscule "S" ou "T"

Soit chmod 2750 /home/doc ("drwxr-s- - -")

Avec chmod 2740 /home/doc

On obtiendra "drwxr-S- - -"

(suppression du droit "x" derrière le "s")

33

Liens entre fichiers

 ln

Crée un lien entre fichiers (raccourcis).

– Hard Link - Associe deux inodes à un fichier.

 Hard links: Représente un même fichier à deux

emplacements différents

 Possible seulement au sein d’un même file system.

– Soft (symbolic) Link - Pointeur indirect sur un fichier.

 Est une entrée dans un répertoire représentant un chemin

vers un fichier.

 Peut être exploité entre différents file systems.  Lien vers un fichier sans se soucier de sa place originale.

$ ls -l file1 file2 lrwxrwxrwx 1 hal acct 512 Mar 14 11:36 file1-> filepointat -rwxrwxrwx 2 hal acct 512 Mar 14 11:36 file2

34

Exemple de liens

Le fichier myfile comprend à la fois un lien

symbolique et un lien hard.

myfile

hlink

slink

data

Pointer

35

Exemple de liens

Si myfile est supprimé, alors hlink pointe encore sur data et slink ne pointe sur aucun élément.

myfile

hlink

slink

data

Pointer

36

Liens entre fichiers

Si un nouveau myfile est créé , hlink pointe toujours sur le “data”

original et slink pointe sur le nouveau “data” de myfile.

myfile

hlink

slink

data

data

Pointer

37

Planification des tâches

 Planification des taches (crontab)

 Commande crontab

 Syntaxe des lignes des tables crontab

 Planification asynchrone (anacron)

Planification avec la commande at

38

Planification des tâches

Le service crond

 Dans un système Unix, de nombreuses tâches sont

régulièrement planifiées :

• La mise à jour de la BD du programme locate ;

• La rotation des logs ;

• Les sauvegardes ;

• Des scripts d'entretien (comme le nettoyage des fichiers

temporaires).

39

Planification des tâches

 cron est le démon en charge d'exécuter des commandes

planifiées et récurrentes (chaque jour, chaque semaine,

etc.) ;

 atd est celui qui s'occupe des commandes à exécuter une

seule fois, à un instant précis et futur.

40

Planification des tâches

Le service crond

 Il est chargé de faire exécuter par le système toutes tâches

(commandes et scripts) définies et planifiées à l'avance.

Publicité

 Ces tâches allant de la simple commande aux scripts

complexes peuvent ainsi être exécutées à heure fixe et

même de façon périodique, et fait l'objet de messages de

compte-rendu.

41

Planification des tâches

Planification des taches (commande crontab)

La commande crontab permet la programmation des tâches planifiées.

Son usage est réservée à root.

Par défaut, tous les utilisateurs peuvent planifier l'exécution de tâches.

C'est pourquoi chacun dispose de sa propre crontab, où il peut consigner

les commandes à planifier. Il peut la modifier en exécutant crontab -e

 ses informations sont stockées dans le fichier

/var/spool/cron/crontabs/utilisateur

42

Planification des tâches

Planification des taches (commande crontab)

On peut toutefois autoriser certains utilisateurs et interdire d’autres via les

fichiers /etc/cron.allow et /etc/cron.deny

Exemple : seuls Mohamed et Ali ont la permission d'utiliser le service

crontab

cat cron.allow Mohamed Ali

Si le fichier /etc/cron.allow existe, alors vous devez être présent dans ce fichier pour être autorisé à utiliser cette commande. Si le fichier /etc/cron.allow n'existe pas mais que /etc/cron.deny existe, alors vous ne devez pas être mentionné dans le fichier /etc/cron.deny afin de pouvoir utiliser cette commande.

Il est conseillé de ne créer qu'un seul des deux fichiers et ensuite placer le nom des utilisateurs auxquels on veut donner/refuser l'accès à la commande crontab.

43

Planification des tâches

Planification des taches (commande crontab)

Le processus crond est normalement lancé au démarrage.

On peut le lancer ou l'arrêter avec https://phoenixnap.com/kb/start-stop-

restart-linux-services systemctl start crond.service (ou

/etc/rc.d/init.d/crond pour system V)

Il lit toutes les minutes les fichiers présents dans le répertoire

/var/spool/cron (et aussi le fichier /etc/crontab, pour voir si des tâches

doivent être exécutées).

Chaque action de crond ajoute une ligne de message dans le fichier

/var/log/cron, qu'il faut purger de temps en temps ... par une commande

crontab (CAD créer un script de purge et le placer dans le fichier crontab)

Par défaut si une commande produit un affichage, il est dirigé vers la

messagerie

44

Planification des tâches

L'utilisateur root dispose de sa crontab personnelle, mais peut également

employer le fichier /etc/crontab ou déposer des crontab supplémentaires dans

le répertoire /etc/cron.d/

Ces deux solutions ont l'avantage de pouvoir préciser l'utilisateur sous l'identité

duquel exécuter la commande.

Le paquet cron propose par défaut des commandes planifiées qui exécutent :

• une fois par heure les programmes du répertoire /etc/cron.hourly/ ;

• une fois par jour les programmes du répertoire /etc/cron.daily/ ;

• une fois par semaine les programmes du répertoire /etc/cron.weekly/ ;

• une fois par mois les programmes du répertoire /etc/cron.monthly/.

De nombreux paquets Debian profitent de ce service : en déposant dans ces

répertoires des scripts de maintenance, ils assurent le fonctionnement optimal

de leur service.

45

Planification des tâches

Commande crontab[-u user]{-l |-r|-e}

Options :

crontab -l  affiche le fichier crontab de l'utilisateur

crontab – r  efface ce fichier

crontab -l -u Med root  examine le fichier crontab de l'utilisateur Med

crontab –e  crée ou édite (pour modification) un fichier temporaire dans

/tmp ouvert dans vi

Lors de la sauvegarde, le fichier est écrit dans /var/spool/cron/$USER, où

$USER est le nom de login de l'utilisateur.

46

Planification des tâches

Syntaxe des lignes des tables crontab

Chaque ligne du fichier contient 6 champs, les 5 premières déterminent les

moments d'exécution de la tâche décrite au 6ème champ.

Les 5 premiers, séparés par des espaces, appelés champs temporels,

décrivent la périodicité :

minutes (0-59), heures (0-23), jour du mois (1-31), mois de l'année

(1-12), jour de la semaine (0-6, 0= dimanche)

47

Planification des tâches

Syntaxe des lignes des tables crontab

Le 6ème est la commande à exécuter, ce peut être naturellement un script qcq

un champ temporel peut contenir :

 une valeur précise et valide pour le champ (par exemple 15 sur le champ minute)

 une liste de valeurs valides, séparées par des virgules (1,3,5 dans le champ

mois : janvier, mars, mai)

 un intervalle valide (1-5 dans le champ jour : du lundi au vendredi)

 * pour signifier toutes les valeurs possibles du champ (* dans le champ minute :

toutes les minutes)

 */5 (dans le champ minutes : toutes les 5 minutes), 0-23/3 (dans le champ

heures : toutes les 3 heures)

48

Planification des tâches

Exemples

exécution chaque 1er et 15 de chaque mois à minuit

0 0 1,15 * * commande

exécution toutes les heures passées 15 minutes

15 * * * * commande

exécution tous les matins du lundi au vendredi à 7 h 30

30 7 * * 1-5 commande

exécution tous les quarts d'heure de 15 à 19h du lundi au vendredi

seulement en 1ère quinzaine du troisième trimestre

0,15,30,45 15-19 1-15 7-9 1-5 commande

49

Planification des tâches

Exemples

trouver puis nettoyer le répertoire /tmp des vieux fichiers (non modifiés

depuis 31 jours) tous les 1er jour de chaque mois, à 2 heures du matin

0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;

envoyer les messages "Je suis encore au travail !" tous les quarts

d'heure à partir de 17 h à tous les utilisateurs actuellement connectés,

et le message "Bonjour chef !" à root tous les jours ouvrables à 10 h

0 10 * * 1-5 write root %Bonjour chef !

*/15 17-20 * * 1-5 wall %Je suis encore au travail !

50

Planification des tâches

Planification des taches (commande at)

La commande at prévoit l'exécution d'une commande à un moment

ultérieur.

Elle prend l'horaire et la date prévue en paramètres sur sa ligne de

commande, et la commande à exécuter sur son entrée standard.

L'horaire est indiqué en suivant les conventions

habituelles : 16:12 représente 16 h 12.

La date peut être précisée au format JJ.MM.AA (27.07.20 représentant

ainsi 27 juillet 2020) ou AAAA-MM-JJ (cette même date étant alors

représentée par 2020-07-27).

On peut encore écrire explicitement today (aujourd'hui)

ou tomorrow (demain).

51

Planification des tâches

Planification des taches (commande at)

$ at 09:00 25.05.20 <<FIN

echo "Penser à me renseigner de la progression de vos activités pour

la séance de révision" \

> | mail [email protected]

FIN

warning: commands will be executed using /bin/sh

job 31 at Mon May 25 09:00:00 2020

52

Planification des tâches

Planification des taches (commande at)

Une autre syntaxe permet d'exprimer une durée d'attente :

at now + nombre période.

La période peut valoir minutes, hours (heures), days (jours)

ou weeks (semaines).

Le nombre indique simplement le nombre de ces unités qui doivent

s'écouler avant exécution de la commande.

53

Planification des tâches

Planification des taches (commande at)

Pour annuler une tâche planifiée pour cron, il suffit, lors d'un appel

à crontab -e, de supprimer la ligne correspondante dans la crontab où la

tâche est définie. Pour les tâches at, c'est à peine plus complexe : il suffit

d'exécuter la commande atrm numéro-de-tâche. Le numéro de tâche est

indiqué par la commande at lors de la planification mais on pourra le

retrouver grâce à la commande atq, qui donne la liste des commandes

actuellement planifiées.

54

Planification des tâches

Planification asynchrone : (commande anacron)

anacron est le démon qui complète cron pour les ordinateurs

non allumés en permanence. Les tâches régulières étant

habituellement planifiées au milieu de la nuit, elles ne seront

jamais exécutées si la machine est éteinte à ce moment-là.

La fonction d'anacron est de les exécuter en prenant en

compte les périodes où l'ordinateur ne fonctionne pas.

55

Planification des tâches Planification asynchrone : (commande anacron)

Attention, anacron fera fréquemment exécuter cette activité en

retard quelques minutes après le démarrage de la machine, ce

Publicité

qui peut en perturber la réactivité. C'est pourquoi les tâches du

fichier /etc/anacrontab sont démarrées sous la

commande nice, qui réduit leur priorité d'exécution et limitera

donc l'impression de lenteur du reste du système. Attention, le

format de ce fichier n'est pas le même que celui

de /etc/crontab

56

Gestion des quotas

Qu’est ce qu’un quota ?

Un outil qui permet de maîtriser l'utilisation de l'espace disque.

Les quotas consistent à fixer une limite d'espace pour (user,group)

Pour la création de ces quotas, on définit 2 types de limites :

- La limite douce (ou soft limit) :

la quantité maximale d'espace qu'un utilisateur peut occuper sur

le système de fichiers.

les utilisateurs pouvent temporairement dépasser leur limite douce

- La limite dure (ou hard limit):

.une limite absolue pour l'utilisation de l'espace. L'utilisateur ne peut

pas dépasser cette limite. Passée cette limite,est interdite.

57

Gestion des quotas - Activations des Quotas Les Quota sont activés au démarrage grâce a la commande quotaon lancée par le script

/etc/rc.d/rc.sysinit

En tant que super utilisateur et en utilisant l'éditeur de texte de votre choix, ajoutez les options usrquota et/ou grpquota aux systèmes de fichiers nécessitant des quotas :

Dans cette exemple, des quotas pour l'utilisateur et le groupe d'utilisateurs sont activés dans le système de fichiers /home.

58

Gestion des quotas - Remontage des systèmes de fichiers

Après avoir ajouté les options usrquota et grpquota,

remonter chaque système de fichiers dont l'entrée fstab a

été modifiée pour prendre en compte la modification :

mount -o remount /home

59

Gestion des quotas - Création de fichiers quota

Créer le fichier qui contiendra les quotas :

#touch /home/aquota.user

#touch /home/aquota.group

Après création de ces fichiers, il faut initialiser la base des quotas en exécutant la commande

suivante :

quotacheck –avug

Les options sont utilisées de la manière suivante:

a — vérifie tous les systèmes de fichiers montés localement et dotés de quotas

activés

v — affiche des messages de statut (verbose) lors de la vérification du quota

u — vérifie les informations relatives au quota de disque utilisateur

g — vérifie les informations relatives au quota de disque groupe

60

Gestion des quotas - Attribution des quotas -User - group-

La dernière étape consiste à attribuer les quotas de disque à l'aide de la commande

edquota

Syntaxe : edquota [−u user] [−g group] [−t]

−u user : définit les quotas pour un ou plusieurs utilisateurs

−g group : définit les quotas pour un ou plusieurs groupes

−t : définit les délais

Exemple :

Disk quotas for user testuser (uid 501):

Filesystem soft hard /dev/hda3 440436 0 0 37418 0 0

blocks soft hard inodes

61

Gestion des quotas - Attribution des quotas -Suite

Fixer un délai

le délai fixé entre le moment où l'utilisateur atteint la limite soft et celui où on va lui

interdire toute occupation supplémentaire dans le système de fichiers.

Syntaxe : edquota −t

Exemple :

edquota −t

Période de grâce avant d'appliquer les limites souples pour les utilisateurs :

L’unité de temps peut être : days, hours, minutes, ou seconds

62

Gestion des quotas - Mise en place Commandes

But : mettre en place des quotas.

1. Pour activer les quotas utilisateur et remontez le système de fichiers (/DONNEES) :

Dans /etc/fstab :

LABEL=DONNEES /DONNEES ext3 defaults,usrquota 0 0

puis : # mount -o remount /DONNEES

2. Créez et activez les quotas.

quotacheck -c /DONNEES

quotaon /DONNEES

3. Placez une limite globale de 150 Mo à l’utilisateur Mohamed :

edquota Mohamed, puis inscrivez la valeur 153600 (en octets) en hard et soft, et

sauvegardez le fichier.

63

Gestion des quotas – Mise en place des quotas

1 Mise en place

Vous voulez mettre en place les quotas sur la partition /home (par exemple) en

respectant les étapes suivantes :

- Modifiez les options de partition dans /etc/fstab : On rajoute dans les options

usrquota (utilisateur) ou grpquota (groupe), ou les deux.

LABEL=/home /home ext3 defaults,usrquota 1 2

- Remontez le système de fichiers : # mount -o remount /home

-

Créez les fichiers contenant les informations de quota (base de données de

quotas) : # cd /home # touch aquota.user aquota.group

- Mettez à jour la base de données avec la commande quotacheck :

-

quotacheck -c /home

64

Gestion des quotas – Mise en place des quotas

- Démarrez (ou arrêter) les quotas. Cette opération n’est pas nécessaire après un

redémarrage de Linux car la mise en place des quotas est comprise dans les

scripts de démarrage. La commande quotaon démarre les quotas pour le système

de fichiers indiqué (-a pour tous). La commande quotaoff stoppe les quotas.

quotaon /home

-

-

Éditez les quotas pour les utilisateurs ou les groupes. La commande edquota est

utilisée.

En pratique, si tous les utilisateurs doivent avoir les mêmes quotas ou avec

quelques variantes, on crée un utilisateur lambda dont on recopiera les

propriétés.

-

Établir les quotas pour Mohamed : # edquota Mohamed ou # edquota -u

Mohamed

65

Gestion des quotas – Mise en place des quotas

-

Les quotas de Ali sont identiques à ceux de Mohamed :

edquota -p Mohamed Ali

-

Établissez le délai de grâce. Le délai accepte les unités « seconds », « minutes », «

hours », « days », « weeks », « monthes ».

edquota -t

• Vérifiez les quotas. Les utilisateurs peuvent vérifier l’état de leurs quotas avec la

commande quota. L’administrateur peut générer un rapport avec repquota. Enfin la

commande warnquota qui peut être exécutée via cron peut envoyer un mail aux

utilisateurs pour les prévenir en cas de dépassement.

L’édition des quotas se fait avec l’éditeur par défaut du système qui est

généralement vi (le comportement peut être modifié via les variables EDITOR et

VISUAL). Les blocs de quotas sont des blocs de 1 Ko.

66

Gestion des quotas – Mise en place des quotas

edquota Mohamed

Disk quotas for user Mohamed (uid 502):

Filesystem blocks softhard

inodes

softhard

/dev/hda5 1695256

25000003000000 12345 00

Avec l’éditeur, on peut modifier les valeurs soft et hard qui correspondent aux

limites douces et dures pour le nombre de blocs et le nombre d’inodes. Ci-dessus, il a

été établi une limite douce à environ 2,4 Go (2500000 ko) et dure à environ 2,9 Go

(3000000 ko) d’occupation du système de fichiers pour roger. Il n’y a pas de quotas

sur le nombre d’inodes (valeur à 0).

edquota Mohamed

Le contenu des champs blocks et inodes est dynamique et ne doit pas être touché, ce qui n’a de toute façon aucun effet.

67

Gestion des quotas – Mise en place des quotas

edquota -t

Filesystem Block grace period Inode grace period

/dev/hda3 7days

7days

repquota /home

*** Report for user quotas on device /dev/hda5

Block grace time: 7 days; Inode grace time: 7 days

User Used

soft hard grace

used

soft hard

root

-- 12345 0 0

5 0 0

Mohamed -- 1695256 2500000 3000000 12345 0 0

Une dernière nécessité est d’utiliser régulièrement la commande quotacheck pour maintenir la cohérence des informations de quotas des systèmes de fichiers.

En effet, en cas arrêt des quotas ou de problème (arrêt inopiné par exemple), il peut parfois être nécessaire de vérifier et de réactualiser les informations. # quotacheck - avug

68