Vous êtes sur la page 1sur 203

SYSTEME D’EXPLOITATION

LINUX

Animé par:
Mr Abdelghani BENABED

1
Historique et présentation
de Linux

2
Systèmes d’exploitation
 Un système d’exploitation est un programme ou un
ensemble de programmes assurant la gestion de
l’ordinateur et des périphériques. Il sert d’intermédiaire
entre le matériel et le logiciel.
Il gère:
 La mémoire

 Les accès aux périphériques

 Les programmes

 La sécurité

 …
Classification des OS
 Systèmes monotâches:
 Les OS mono-tâches ne gèrent qu’un seul programme
à la fois.
 Systèmes multitâches:
 Les OS multitâches permettent de partager le temps
processeur entre plusieurs programmes, ainsi ceux-ci
sembleront s'exécuter simultanément.
 Les applications sont découpées en séquence
d'instructions que l'on appelle tâches ou processus.
NB:
Ne pas confondre avec système à temps partagé qui
signifie que le temps microprocesseur est partagé entre
les utilisateurs connectés simultanément.
Classification des OS
 Mono-utilisateur:
Le système ne gère pas les comptes utilisateurs, on ne parle
pas d’ouverture de sessions. Le système démarre directement.

 Multi-utilisateurs :
Le système permet la gestion de plusieurs utilisateurs
différents sur une même machine. Chaque tâche réalisée par
le système est affectée à un compte utilisateur, c’est celui qui
a ouvert la session pendant laquelle s’exécute la tâche, il peut
aussi s’agir d’un compte système.

 Unix est :
 Multitâche
 Multi-utilisateurs 5
Unix : Architecture simplifiée
 appels systèmes : utilisés par les programmes
pour communiquer avec le système d’exploitation
 gestion des processus : s’occupe de la
commutation des tâches et de leur priorité. Ce
composant s’occupe donc du multitâche.
 La gestion des E/S fichiers : s’occupe aussi bien de
la lecture et de l’écriture des données sur les disques
durs mais aussi sur les périphériques (carte son,
imprimante, etc…)
 Certaines informations peuvent être placées dans
une zone mémoire tampon appelée cache. Plutôt
que d’écrire des données directement sur le disque
dur, Unix les écrit dans une zone mémoire puis
ensuite après sur le disque. Ainsi, la relecture de ces
données est plus rapide et le logiciel ne perd pas de
temps à attendre la fin de l’écriture des données.
 Les pilotes ont pour rôle de gérer au plus bas
niveau le matériel ou les structures logiques du
matériel (par exemple les données d’une partition).
Unix : Généralités
 Unix est né aux laboratoires Bell (Filiale d’AT&T)
 Développé en assembleur à partir de 1969 par Ken Thompson
et Dennis Ritchie
 En 1973, Unix est réécrit à 90% en langage C (Créé par Brian
Kernighan)
 Actuellement, Unix est un système d’exploitation des stations
de travail et des serveurs (utilisé sur de plus en plus de
plateformes grâce au développement des Unix «libres»)
 Fournisseurs : Digital Equipement, Hewlett Packard, IBM,
Silicon Graphics, Oracle (ex. Sun Microsystems) + tous les Unix
"libres" (Linux, OpenBSD, FreeBSD, ...)
 Un consortium : X-Open
 Deux standards : POSIX (IEEE), X-Open

Unix
Projet GNU
: Généralités
 Lancé par Richard Stallman en 1983
 Objectif : écrire un nouveau SE entièrement libre d’accès
 N’a pas abouti
 Free Software Foundation
 Lancée par Stallman en 1985
 Logiciel libre
 Rédaction de la GNU GPL (General Public Licence)
 GPL
 Liberté 0 : la liberté d’utiliser un logiciel quel que soit l’usage
qu’on en fait.
 Liberté 1 : la liberté d’étudier le fonctionnement du
programme et de l’adapter à son besoin.
 Liberté 2 : la liberté de redistribuer des copies afin d’aider les
autres.
 Liberté 3 : la liberté d’améliorer le programme et de diffuser
les améliorations au public à fin d’en faire bénéficier
l’ensemble de la communauté.
Linux : Historique
 Unix-like libre (GPL), développé par Linus Torvalds
 1991 : Première version
 1992 : intégration de l’interface graphique X11
 1994-1997 : apparition des premières distributions
(Red Hat, Debian, Suse, Slackware)
 1998 : l’adoption s’élargit. Oracle et Informix sont
portés à Linux
 1999 : noyau 2.2 (1.8 millions ligne de code)
 2001 : noyau 2.4 (3.3 m.)
 2003 : noyau 2.6 (5 m.)
 2012 : noyau 3.2 (15 m.)
Matériel pour Linux
 Linux supporte au moins les architectures
matérielles suivantes:
 x86 pour processeurs Intel et AMD 32 bits.
Fonctionne aussi pour des processeurs 64 bits
 x86_64 pour processeurs Intel et AMD 64
bits. Ne supporte pas des 32 bits.
 ppc pour processeurs PowerPC (anciens
ordinateurs Apple). Les nouvelles machines
Apple utilisent des processeurs Intel.
Matériel pour Linux
 Linux existe pour des machines avec aussi peu de
RAM que 16 Mo et des processeurs 386
 Pour une version « moderne » avec
environnement graphique complet, compter au
minimum:
 1 processeur ou + de type Intel pentium ou
similaire.
 1 Go de RAM.
 10 Go d’espace disque.
Matériel pour Linux
 Avant d’installer Linux, vérifier (sur
Internet) la prise en charge de votre
matériel par Linux
Distributions Linux
 Debian
 Projet fondé en 1993
 Avantages
 Totalement open source
 De très nombreux packages disponibles
 Logiciel d’installation APT pratique et performant
 Stabilité
 Inconvénients
 Mises à jour irrégulières et espacées
 Installation et configuration légèrement compliquées
 Packages souvent anciens
Distributions Linux
 Ubuntu
 Lancée en 2005
 Dérivé de Debian avec le but de fournir des
logiciels plus récents + ergonomie
 Compatibilité avec les packages Debian
 Installation très simple
 Nouvelle version tous les 6 à 8 mois
 Environnement graphique convivial
14
Distributions Linux
 Red Hat et Fedora
 Fondée en 1995
 La plus innovante
 Installateur Anaconda

 Packages RPM

 Outils de configuration

 Red Hat 9 sorti en 2003 est la dernière version grand


public, remplacé par la version communautaire Fedora
 Distributions commerciales orientés entreprise : Red
Hat Enterprise Linux (RHEL)
Distributions Linux
 RHEL
 Versions professionnelles destinées aux entreprises
 Nombreuses architectures matérielles supportées
 Support commercial
 Mises à jours assurées pendant sept ans.
 Niveau de sécurité élévé
 100% libre

 CentOS
 Community Enterprise OS
 Copie exacte de RHEL
 100% libre et 100% gratuite
Distributions Linux
 Mandriva
 Précédemment appelée Mandrake
 Dérivée de Red Hat
 Distribution « française »
 OpenSuse
 Développement communautaire
 Acheté par la société Novell
 Une version tous les 6 à 8 mois
 Stable, libre et gratuite
 … 17
Arborescence Linux
 Qu’est-ce qu’un système de fichier ?
 Organisation physique des données sur un support

 Sur un disque dur, une clé USB, un DVD, …

 Qu’est-ce qu’une arborescence ?


 Organisation logique des fichiers sur un ou plusieurs systèmes de

fichiers
 Il s’agit d’une structure de données hiérarchique de type arbre

samba
etc
apache2 httpd.conf
/
dupont
home
durant

18
Arborescence Linux
 Voici l’arborescence typique d’un système Linux :
etc Fichiers de configuration
bin Commandes principales disponibles pour tous
boot Fichiers de démarrage du système contenant le noyau
dev Point d’entrée vers les périphériques
/ home Répertoires personnels des utilisateurs
root Répertoire personnel du super-utilisateur
usr Logiciels et librairies supplémentaires
var Journaux systèmes (log)
proc Système de fichiers virtuel (VFS) contenant des
infos sur les processus en cours d’exécution
19
Systèmes de fichiers Linux
 Ext2 :
 c'est le système de fichiers qui a longtemps été utilisé sous
Linux. Il a été développé par un français (Rémy Card) et
présente la particularité de ne pas se fragmenter. Ainsi,
sous Linux et depuis longtemps, il n'y a pas besoin de faire
de défragmentation.

 Les fichiers peuvent avoir jusqu’à une taille de 2To (2048


Go), tandis qu’une partition peut atteindre 32 To, voire
128 To , selon la taille des blocs et l’architecture.

20
Systèmes de fichiers Linux

 Ext3 :
l'ext3 est très proche de l'ext2, à une différence majeure
près, la journalisation. En effet, ext2 n'était pas journalisé,
et en cas de crash disque on risquait plus facilement une
perte de données. Ce n'est plus le cas avec l'ext3.
A noter que l'ext2 et l'ext3 sont parfaitement compatibles
entre eux, dans un sens comme dans l'autre.
 Comme pour ext2, la taille maximale des fichiers est de 2

To, et celle d’une partition de 32 To, suivant les mêmes


restrictions.

21
Systèmes de fichiers Linux
ext4
 Successeur de ext3. Il est journalisé, c'est à dire qu'il

trace les opérations d'écriture pour garantir l'intégrité des


données en cas d'arrêt brutal du disque.
 Permet la pré-allocation d'une zone contiguë pour un

fichier, afin de minimiser la fragmentation. Utilisez ce


système de fichiers si vous comptez pouvoir relire des
informations depuis votre Mac OS X ou Windows.
 Taille maximale pour une partition 1 024 pébioctets

(1 Pio = 250 octets)


 Taille maximale pour un fichier 16 To.

22
Systèmes de fichiers Linux
reiserfs
 reiserfs a été le premier système de fichiers intégré à Linux.
Sa force réside, dans son journal et dans la manipulation
des fichiers de petite taille.
 Ses performances sont exceptionnelles en présence de
milliers de fichiers, de faible à moyen volume.
 Il est redimensionnable à chaud. Il devient plus lent sur des
gros fichiers.
 Les fichiers peuvent atteindre 8 To, et les partitions 16 To.
Les noms de fichiers peuvent avoir 4032 caractères mais
sont limités par Linux à 255 caractères.
 Impossible de convertir de ou vers ext2 et ext3
23
Systèmes de fichiers Linux
 xfs
 Journalisé

 Mécanismes avancé:

 Défragmentation en ligne

 Snapshots

 Réservation de bande passante

 1 fichier < = 8 Eo (1 Eo = 1024 Po = 1048576 To)

 1 partition <= 16 Eo

 Non supportée officiellement par Red Hat


Systèmes de fichiers Linux
 vfat
 Terme générique, regroupant les diverses versions
FAT supportant les noms de fichiers longs (255
caractères) sous Windows
 Adapté aux petits volumes
 Compatibilité en différentes plateformes (Windows,
Linux, BSD, MacOS,…)
 L’existence de ntfs3g permet d’utiliser des supports
utilisant NTFS de manière native
A propos du nom des disques
On va découvrir les noms des disques sous Linux avec un
exemple : hda

h : la première lettre indique si le disque est de type IDE
ou SCSI. Si c'est une IDE, la lettre est un h, si c'est un
SCSI (ou un S-ATA), la lettre est un s.
 d : cette lettre ne change pas.
 a : c'est cette lettre qui indique les différents disques
durs. hda représente le premier disque dur IDE, hdb le
second, hdc le troisième etc.
 Lorsqu'on crée des partitions, on ajoute généralement un
chiffre représentant le numéro de la partition. Ainsi, si on
a 3 partitions sur notre disque hda, elles seront
nommées hda1, hda2, hda3...

26
LES COMMMANDES DE BASE
Syntaxe d’une commande linux

La syntaxe générale d’une commande Linux est :

cmd options arguments

cmd le nom de la commande


options les options de la commande précédées du
signe –
arguments les objets sur lesquels s’appliquent la
commande
Commandes de démarrage du
système
 halt
permet d'arrêter le système.
Options:
-p: arrêt immédiat
-f: force l’arrêt
--reboot : redémarre la machine.
 reboot permet de le redémarrer.

Options:
-f: force le redémarrage
28
Niveaux d'exécution du système

 À tout moment, le système Linux se trouve à un niveau


d'exécution donné. La distribution Red Hat en définit 7 :
 0 : Hors service : l'alimentation peut alors être coupée
sans danger.
 1 : Mode mono-utilisateur (pour administration système)
 2 : Mode multi-utilisateurs : fonctionnement normal sans
NFS: network file system (identique au niveau 3 mais
sans les fonctionnalités réseau).
 3 : Mode multi-utilisateurs : fonctionnement normal pour
systèmes en réseau, partageant leurs ressources avec
d'autres systèmes.

29
Niveaux d'exécution du système

 4 : Inutilisé
 5 : X11 cad avec prise en charge de l’interface
graphique
 6 : Mise hors service et redémarrage : sert durant
le redémarrage du système à partir d'un niveau de
fonctionnement (2, 3, 5). Le système passera
ensuite au niveau à partir duquel le niveau 6 a été
lancé.

30
Niveaux d'exécution du système

 Comme on peut le voir, un niveau d'exécution est


donc un état d'init et du système qui définissent
quels sont les services qui s'exécutent.
 Lors de la phase de démarrage, init doit savoir à
quel niveau placer le système.
 Pour cela, il recherche dans le fichier /etc/inittab la
ligne qui configure ce niveau par défaut :
id:3:initdefault:
 signifie que le système démarrera en Mode multi-
utilisateurs complet. 31
Niveaux d'exécution du système

 On peut changer de niveau d'exécution grâce à la


commande telinit (qui n'est qu'un lien sur init) :
 # telinit 2
 placera le système en Mode multi-utilisateurs
sans réseau. Bien entendu, seul l'administrateur
système (root) peut exécuter cette commande...
 telinit permet de demander à init de passer dans
un niveau n (avec n compris entre 0 et 6)

32
Niveaux d'exécution du système

 telinit dispose de fonctionnalités


supplémentaires : il permet de demander
à init d’effectuer une relecture de /etc/inittab, ce
qui est pratique après une modification de ce
fichier grâce à la commande
# telinit q

33
Connaître le niveau d'exécution courant

 La plupart des Unix utilisent une option de la


commande who qui permet d'indiquer le niveau
d'exécution courant :
 # who –r
run level 3 Oct 17 18:00 3 0 5
Cette sortie indique que le 17 Octobre, le système
est passé du niveau de fonctionnement 5 au
niveau 3. Le 0 indique que ce passage s'est
effectué du premier coup.
34
Niveaux d'exécution du système

 Il existe aussi une autre commande pour avoir


cette information :
# runlevel
runlevel N 2
 Indique que le système est au niveau 2 et qu'il
n'y a pas de niveau précédent.
 # telinit 3
runlevel 2 3

35
unité 2

Gestion de l’arborescence

36
Commandes liées à
l’arborescence
 La commande pwd (print working directory)
 Affiche le nom du répertoire courant
 La commande ls
 Affiche les fichiers et sous-répertoire d’un répertoire
Syntaxe : ls [option] [nom_de_répertoire]
 Options utiles
 F: ajout d’une indication de type
 l : affiche les principaux attributs des fichiers et répertoires
Type droits liens propriétaire groupe taille date nom
 a : affiche les fichiers et répertoires dont le nom commence par
un point.
 d : n’affiche pas le contenu du répertoire
 i : affiche l’inode correspondant à chaque fichier
 R : affichage récursif
37
Commandes liées à
l’arborescence
 La commande cd (change directory)
Permet un déplacement sous le répertoire passé en argument
Syntaxe : cd [nom_répertoire]
Exemple
- cd ou cd ~
- cd ..
- cd nom_répertoire

- cd -

- Dans le cas d’un chemin relatif, le répertoire est


recherché à partir du répertoire courant ou en
utilisant la variable CDPATH.
38
Commandes générales sur les
fichiers
 Création d’un fichier vide
 touch nom_fichier
 > nom_fichier

Exemples: touch list_contact


> erreurs.tmp
touch agenda.list lettre.txt journal.log
Crée les trois fichiers au même temps.
 Affichage du contenu d’un fichier (texte)
 cat nom_fichier [nom_fichier, …]
Exemples: cat list_contact
cat lettre.txt journal.log erreurs.tmp
Affiche le contenu des trois fichiers dans l’ordre séparés à chaque
fois par le nom du fichier à afficher
 less fichier ou more fichier pour les fichiers longs
39
Commandes générales sur les fichiers
 Copier un fichier
 cp fichier1 fichier2

 cp fichier1 [fichier2 fichier3 …] repertoire

Copier les fichiers cités dans repertoire


 cp –R répertoire1 répertoire2

Copier l’intégralité de l’arborescence du dossier


 cp -p fichier_source fichier_destination :

copier un fichier en préservant tous les attributs du fichier initial à


savoir mode d’accès, propriétaires, date de création (p pour
preserve)
Cp –i : demander confirmation en cas d’existence du fichier cible
 cp –a fichier_source fichier_destination :

idem cp –p

40
Commandes générales sur les
fichiers
 Renommer ou déplacer un fichier
mv fichier1 fichier2
Renommer le fichier fichier1 fichier2
Options:
f: écraser le fichier destination si ‘il existe
i: demander confirmation avant d’écraser

mv fichier1 [fichier2 fichier3 …] répertoire


Déplacer les fichiers fichier1 [fichier2 fichier3 dans
répertoire
41
Commandes générales sur les
fichiers
 Supprimer un fichier
rm [options] fichier1 [fichier2 …]
 Options utiles:

 i : affiche une demande de confirmation de suppression


 r : suppression récursive (attention aucune demande de
confirmation)
 f : forcer la suppression lorsque le fichier appartient à un
autre utilisateur.

42
Gestions des liens

 Liens physiques
ln fichier1 fichier2
Crée une autre entrée dans la table des fichiers pour le
même fichier avec le nom fichier2. Dorénavant
fichier1 et fichier2 permettent d’accéder au même
contenu sur le disque.
La commande ln ne crée donc pas un autre fichier. En
affichant les propriétés étendues des deux fichiers,
on trouve qu’ils pointent sur le même inode.

43
Gestions des liens
 Liens symboliques
ln –s répertoire1 répertoire2
Permet de créer un raccourci du répertoire répertoire1
appelé répertoire12
Un nouveau fichier faisant référence au premier est crée

44
Gestion des répertoires
 Créer un répertoire
$ mkdir nom_rép [nom_rép …]
 Créer une arborescence de repertoires
$ mkdir –p rep/srep/ssrep
Crée toute l’arborescence rep/srep/ssrep d’un seul coup
Remarque: Le répertoire crée est non vide il contient :
 . : Dossier caché faisant référence au répertoire courant

 .. : Dossier caché faisant référence au répertoire du


niveau supérieur
Ces deux dossiers permettent de balayer toute
l’arborescence du système de fichiers

45
Gestion des répertoires
 Suppression d’un répertoire vide
rmdir nom_rép [nom_rép …]
 Il n’est pas possible de supprimer le répertoire courant
$ rmdir dossier
$
 Pour la suppression d’un répertoire non vide, utiliser la
commande rm avec l’option –r.
$ rmdir dossier
Ne peut pas supprimer dossier: dossier est non vide
$ rm –r dossier
$
46
Gestion des répertoires
 La commande du donne des informations sur la taille
qu'occupe les dossiers sur le disque.
du options [ fichier ]
Options:
a : afficher la taille des dossiers et des fichiers
h : afficher la taille en Ko, Mo, Go...
s : avoir juste le grand total
$ du –sh rapport
98M rapport
Le dossier rapport occupe 98 M sur le disque
47
Redirection des entrées-sorties
 Redirection en sortie
Récupération du résultat d’une commande ailleurs qu’à
l’écran
Commande > fichier
 Si le fichier existe déjà son contenu sera perdu
Sinon il faut utiliser deux fois le caractère supérieur
Commande >> fichier
 Si le fichier n’existe pas, il est créé automatiquement

48
Redirection des entrées-sorties
 Redirection de l’entrée
Permet à une commande d’utiliser comme données,
le contenu d’un fichier à la place d’une lecture clavier
Commande < nom_fichier_de_redirection
 Canaux standard
 Stdin 0
 Stdtout 1
 Stderr 2 ( commande 2> /dev/null redirection des erreurs sur la
poubelle)
 Réunion de canaux d’entrée-sortie
… > fichier 2>&1
49
Les filtres
 Un filtre est une commande sachant écrire
et lire des données par les canaux d’entrée
et de sortie standard.
 Exemple
 tail , head
 wc (options l w c)
 sort
 grep
 more
50
Programmes utilitaires et filtres
commande tail
 La commande tail affiche la dernière partie d’un
fichier.
Syntaxe tail [-nombre] fichier
 Nombre : définit le nombre de lignes à afficher.
Par défaut c’est 10
 Exemple
 tail –5 timbre affiche les 5 dernières lignes du
fichier timbre
 tail timbre affiche les 10 dernières lignes du
fichier timbre

51
Programmes utilitaires et filtres
commande head
 La commande head affiche la première partie d’un
fichier.
Syntaxe head [-nombre] fichier
 Nombre : définit le nombre de lignes à afficher.
Par défaut c’est 10
 Exemple
 head –5 timbre affiche les 5 premières lignes du
fichier timbre
 head timbre affiche les 10 premières lignes du
fichier timbre

52
Programmes utilitaires et filtres
commande wc
 La commande wc affiche le nombre de lignes, de mots et
de caractères d’un fichier donné
Syntaxe
wc options fichier
Options
 -c: nombre de caractères uniquement.

 -w: nombre de mots uniquement.

 -l : nombre de lignes uniquement.

53
Commande wc
Exemples:
wc liste
affiche le nombre de lignes, de mots et de caractères du
fichier liste
30 320 2500 liste
Le fichier liste contient 30 lignes, 320 mots et 2500
caractères
wc –l liste
30 liste (Le fichier liste contient 30 lignes )
wc –w liste
320 liste (Le fichier liste contient 320 mots )
wc –c liste
2500 liste (Le fichier liste contient 2500 caractères)
54
Fractionnement de fichiers
 Scinder un fichier en fichiers de n_l lignes
split -l n_l nom_fichier

 Scinder un fichier en fichiers de n_o octects


split -b n_o nom_fichier
Exemples
 Pour scinder le fichier /var/log/messages en fichiers

de dix lignes chacun:


split -l 10 /var/log/messages

55
Fractionnement de fichiers
 Pour scinder le même fichier en fichiers de
500 octects chacun:
split –b 500 /var/log/messages

Rq:
Par défaut, les fichiers crées suivent le
modèle de noms xaa, xab, xac …..

56
Commande sed
 La commande sed permet de réaliser différentes actions sur
les fichiers.
1. Supprimer une ligne en utilisant son numéro d’ordre dans
le fichier
sed ‘3d’ file.txt
Supprime la 3ème ligne du fichier file.txt
2. Supprimer une ligne contenant une chaine de caractères
dans le fichier
sed ‘/cours/d’ file.txt
Supprime toutes les lignes contenant le mot « cours » du
fichier file.txt
Commande sed
3. Supprimer la dernière ligne d’un fichier
sed ‘$d’ file.txt
Supprime la dernière ligne du fichier file.txt
4. Supprimer toutes les lignes vides dans un fichier
sed ‘/^$/d’ file.txt
ou sed ‘/./!d’ file.txt
Supprime toutes les lignes vides du fichier file.txt
5. Supprimer les lignes situées dans un intervalle
sed ‘7,9d’ file.txt
Supprime les lignes 7, 8 et 9 du fichier file.txt
Commande sed

6. Rechercher une chaine de caractères dans un fichier et la


remplacer éventuellement
Syntaxe:
sed -e "s/ch_cherchée/ch_remplacement/options" fichier
Exemple :
sed -e "s/bonjour/bonsoir/g" test.txt
permet de remplacer « bonjour » par « bonsoir » dans le texte
du fichier test.txt.
Le remplacement se fait dans la sortie standard. Pour modifier
le fichier ajouter l’option -i :
sed -ie "s/bonjour/bonsoir/g" test.txt
Commande sed

 Remarques
 L’option g permet d'effectuer un remplacement
global (au lieu de ne remplacer que la première
occurrence du texte rencontrée dans chaque
ligne), et i permet d'effectuer une recherche sans
tenir compte de la casse des caractères.
 Avec l’option sed –ie le changement est effectué
directement dans le fichier et pas dans la sortie
standard
60
Critères de recherche de noms de
fichiers
 Modèles de noms de fichier
 * : remplace une chaîne vide ou de longueur variable
 ? : remplace un caractère unique quelconque
 [] : représente une série ou une plage de caractère
 [!…] : inverse la recherche

 Exemples
 a* : les fichiers dont le nom commence par a
 a?? : fichiers en trois lettres, commençant par a
 [aA]* : fichiers dont le nom commence par un a minuscule ou
majuscule.
 [a-m]* : fichiers dont le nom commence par une lettre de la plage
a-m.
 Attention rm *
61
Verrouillage des caractères
spéciaux
 Il est utile de désactiver la signification
spéciale des caractères *, ?, [] et !
 Exemple
 rm a* : supprime tous les fichiers dont le nom
commence par a
 Pour supprimer le fichier a*, il faut désactiver le *;
 Caractères spéciaux de désactivation
 Backslash (\)
 Guillemets (``…. ``)
 Apostrophes (‘…’)

62
Programmes utilitaires et
filtres
 Recherches de lignes dans un fichier (grep)
 La commande grep permet d’extraire des lignes particulières
d’un fichier ou d’un flux de données au sein d’un tube
Syntaxe grep [option] modèle_de_critères [fichier1 …]
 Les sept options du grep les plus utiles sont :
 i : pour ne pas tenir compte des majuscules/minuscules,
 v : toutes les lignes ne contenant pas le critère,
 n : pour avoir les numéros de ligne,
 E : pour les expressions régulières plus compliquées, (Equivaut à
utiliser la commande egrep)
 l : pour lister seulement les fichiers et non pas les lignes contenant
la chaîne recherchée,
 c : la commande ne retourne que le nombre de lignes trouvées
 w: recherche par mot complet.
63
Programmes utilitaires et filtres
(grep)
 Le modèle de critères peut contenir les caractères
spéciaux suivants :
 […] : Plage de caractères permis à cet emplacement
 [^…] : Plage de caractères non permis à cet emplacement
 .: Un caractère quelconque (y compris un espace)
 * : Signe de répétition. Agit sur le caractère placé devant le
*
 $ : Matérialise une fin de ligne
 | : ou
 ^ : début de ligne
 \{…\} : Caractère de répétition, entre les accolades
 \{nombre\} nombre exacte

 \{nombre,\} nombre minimum

 \{nombre1,nombre2\} de nombre1 à nombre2

64
Programmes utilitaires et filtres
(grep)
Rq: Ces caractères spéciaux doivent être
interprétés par la commande grep et non pas
par le shell

Le modèle de critères doit être mis entre


guillemets ou entre apostrophes
Exemple
grep ‘[A-Z][A-Z]*$’ timbres

65
Programmes utilitaires et filtres
(grep)
 nombre de lignes commençant par ! Dans le
fichier fichier1 :
grep "^!" fichier1 | wc -l
grep -c "^!" fichier1
 recherche de STOP avec le numéro de la ligne :
grep -n -i stop fichier1
 liste de tous les fichiers qui n'ont pas "image" ou
"son" dans leur nom :
ls | grep -vE "(image|son)"
 liste des lignes contenant "image" ou "son" dans
tous les fichiers du répertoire courant
grep -E "(image|son)" *
66
Programmes utilitaires et filtres
commande cut
 Sélection de colonnes et de champs
Syntaxe cut –csélection_de_colonne [fichier …]
 Sélection_de_colonne pourra représenter l’une des
informations suivantes:
 Une colonne seule (exemple: cut -c5 file),

 Une plage de colonnes

exemple:
cut -c3-10 file
cut -c8- file ),
 Une liste de nombres séparés par des virgules
(par exemple -c3,7,9),
 Une combinaison des trois formes précédentes
(par exemple -c1-3,7,20-). 67
Programmes utilitaires et filtres
commande cut
 Sélection de champs
cut [-dx] –fsélection_de_champ [fichier ..]
 x désigne le caractère de séparation de champs
 Sélection_de_champ suit les mêmes règles que la
sélection des colonnes
Slimani;Aziz;1995;Rabat;Etudiant
cut –d; -f1 liste (Afficher les noms)
cut –d; -f1,2 liste (Afficher les noms et les prénoms)
cut –d; -f1-3 liste (Afficher les noms, les prénoms et l’année)
cut –d; -f1,4-5 liste (Afficher les noms, la ville et la profession)
cut –d; -f1,3- liste (Afficher les noms, l’année, la ville et la profession)

68
Programmes utilitaires et filtres
 Tri par lignes
 La commande sort effectue un tri par
lignes en ordre croissant.
Syntaxe:
sort [options] …] [fichier …]
 Par défaut le tri porte sur chaque ligne prise en intégralité
 Le second critère ne sera mis en œuvre que si le premier
critère ne suffit pas à départager les lignes.

69
Programmes utilitaires et filtres
sort
 Les options utiles:
 d : tri ascii
 n : tri numérique
 f : aucune différence n’est faite entre majuscules
et minuscules
 r : inverse l’ordre de tri, donc tri décroissant
 tc : le caractère « c » est défini comme caractère
de séparation entre les champs d’une ligne
 u: afficher une seule fois les lignes considérées
comme équivalentes
70
Les tubes
 Un tube (pipe) permet d’établir une liaison
directe entre le canal de sortie standard d’une
commande avec le canal d’entrée standard
d’une autre

Commande1 | commande2 | … |commanden

Exemple
ls | wc -w combien de fichiers sont contenus dans un
répertoire

71
Programmes utilitaires et filtres
commande tee
 Avec l’utilisation d’un tube, le résultat de la
première commande n’est pas accessible.
Pour avoir une copie, on peut utiliser la
commande tee. Le résultat de la première
commande est sauvegardé dans un fichier
dont le nom est passé en argument.
 Exemple
 ls | tee espion | wc –w
 Le résultat de la commande ls est enregistré dans
le fichier espion

72
Recherche de fichiers et de
répertoires
 La commande find parcourt les répertoires et
leurs sous-répertoires de manière récursive, à la
recherche de fichiers.

Syntaxe
find dossier critère_de_sélection option(s)

 dossier : répertoire à partir duquel la recherche doit commencer


 critère_de_sélection : critères de recherche à mettre en œuvre
 Option : que doit-il se passer si un fichier répond à ce critère

73
Recherche de fichiers et de
répertoires
 Lors de la recherche, un répertoire ne
peut être parcouru que si l’utilisateur
dispose des autorisations de lecture et
d’exécution sur ce répertoire.

74
Recherche de fichiers et de
répertoires
 Options des sélection des fichiers et répertoires

 name : recherche par nom de fichier


 type : recherche par type de fichier
 user : recherche par propriétaire
 group : recherche par l’appartenance à un
groupe
 size : recherche par taille de fichier

75
Recherche de fichiers et de
répertoires
 atime : recherche par date de dernier accès
 mtime : recherche par date de dernière
modification
 ctime : recherche par date de création
 perm : recherche par autorisations d’accès
 links : recherche par nombre de références
(links) aux fichiers

76
Recherche de fichiers et de
répertoires
 Option de commande
 Les options de commande seront traitées pour chaque
fichier trouvé. En dehors de l’option –print qui
montre le chemin d’accès au fichier, on peut mettre
en place l’option -exec
 Les commandes dont il est fait état derrière –exec
seront exécutées sans aucune demande de
confirmation
 L’option –ok demande à l’utilisateur si la commande
doit effectivement être exécutée.

77
Recherche de fichiers et de
répertoires
 Traitement sans confirmation avec –exec
 La spécification d’une commande derrière –exec est
soumise à certaines règles:
 L’option –exec doit être la dernière de la
commande find
 La commande placée derrière –exec doit être
terminée par le paramètre ;. Comme c’est un
caractère spécial, il doit être masqué par un \

78
Recherche de fichiers et de
répertoires (suite)
 Pour accéder à un des fichiers trouvés, dans le
cadre de la commande placée derrière –exec,
utilisez le raccourci {}
Exemples
find /etc –type f –name *txt
Trouver tous les fichiers dont le nom se termine par
txt dans l’arborescence du dossier /etc
find / –type d –user root
Trouver tous les dossiers de l’utilisateur dans la
racine de l’arborescence
79
Recherche de fichiers et de
répertoires (suite)
find . –user student –exec ls –l {} \;
(affiche le format long de la commande ls pour les
fichiers trouvés)
find . –type f –atime +300 –exec rm {} \;
(supprime les fichiers auxquels vous n’avez plus
accédé depuis plus de dix mois)

80
Recherche de fichiers et de
répertoires
 Traitement après confirmation avec –ok
 Les mêmes explications s’appliquent également à l’option –ok,

mais celle-ci, demande une confirmation d’exécution de la


commande pour chaque fichier trouvé. Ce n’est qu’en cas de
réponse affirmative (avec y), que la commande placée
derrière –ok sera exécutée.
Exemple :
 find . –ok rm {} \;

Supprime tous les fichiers et dossiers du dossier courant


après confirmation
Equivalent à rm –i *

81
Recherche de fichiers et de
répertoires
 Combinaison de critères pour recherches complexes
 Les critères de sélection peuvent être combinés. Un fichier
valide doit répondre simultanément à l’ensemble des
critères définis.
 La commande find permet également des combinaison
logiques de ses options
 ! : négation logique des options

 a : liaison par ET logique des options de recherche

(and)
 o : liaison par OU logique des options de recherche (or)

82
Recherche de fichiers et de
répertoires
 Combinaison de critères pour recherches
complexes
 Si vous utilisez plusieurs opérateurs logiques pour
combiner des options de sélection. Il faut tenir compte
de l’ordre des signes !, -a, -o.
! > -a > -o
 Pour spécifier une combinaison d’options basée sur un
lien ET ou OU, il faut placer l’ensemble de l’expression
entre parenthèse. Les parenthèses doivent être
verrouillées.
 Exemple
 find . \( -type d –o –name "*ham" \) -print
83
Compression avec Gzip et Zip
 On a souvent besoin de compresser des fichiers
ou dossiers pour qu’ils occupent moins d’espace
disque ou pour qu’ils soient facilement transférés
en réseau ou par messagerie.
 Pour compresser les fichiers Linux on peut utiliser
l’outil gzip ou zip.
 La comande zip est compatible avec d’autres
systèmes tels que Windows.
 Par convention, les fichiers compressés se voient
attribuer l'extension .gz.
84
Compression avec Gzip et Zip
 Exemples
 gzip filename.ext
Crée le fichier compressé filename.ext.gz, le fichier
d’origine n’existe plus sous la forme
décompressée.

 gunzip filename.ext.gz
Décompresse le fichier filename.ext.gz

85
Compression avec Gzip et Zip
 gzip file1 file2 file3
 Pour compresser un fichier à l'aide de zip :
 zip -r filename.zip files

 filename représente le fichier que vous créez, et files


représente les fichiers que vous voulez placer dans le
nouveau fichier
 Le commutateur -r indique que le contenu du répertoire
doit être compressé ainsi que ses sous-répertoires.
 Pour extraire le contenu d'un fichier zip, entrez :
 unzip filename.zip –d destination

 Pour compresser plusieurs fichiers en même temps


avec zip ou gzip.
86
Archiver avec Tar
 Les fichiers tar placent plusieurs fichiers ou le contenu d'un
répertoire ou de plusieurs répertoires dans un seul fichier.
 Généralement, les fichiers tar se terminent par l'extension
.tar
 Pour créer un fichier tar :

tar -cvf filename.tar files/directories


Exemple:
tar –cvf docs.tar lettre.txt event.log liste.tmp
Crée un fichier archive docs.tar contenant les fichiers
lettre.txt, event.log et liste.tmp

87
Archiver avec Tar
 Pour afficher la liste du contenu d'un fichier tar:
tar -tvf fichier_archive.tar
Exemple:
tar -tvf docs.tar
 Pour extraire le contenu d'un fichier tar:
tar -xvf fichier_archive.tar
 Cette commande n'élimine pas le fichier .tar, mais elle
place des copies du contenu de .tar dans le répertoire dans
lequel vous travaillez actuellement.
88
Archiver avec Tar
 La commande tar ne compresse pas
automatiquement les fichiers. On peut
compresser les fichiers tar avec :
tar -czvf fichier_archive.tgz file1 file2 file3
Les fichiers tar compressés se voient attribuer l'extension .tgz et sont
compressés avec gzip.
 Pour décompresser un fichier tar, entrez:

tar -xzvf fichier_archive.tgz

89
unité 3

Editeur vi

90
Edition de texte avec vi
 L'éditeur vi est disponible sur toutes les
machines UNIX. Il utilise deux modes :
 un mode insertion et
 un mode de commandes.

 La syntaxe d'appel de l'éditeur est


vi fich1

91
Edition de texte avec vi
 Le Mode Insertion
 a ("after") passe en mode insertion après la position courante du
curseur
 i ("insert before") passe en mode insertion avant la position
courante
 A ("append") passe en mode insertion à la fin de la ligne sur
laquelle se trouve le curseur ;
 I ("insert") passe en mode insertion avant le premier caractère non
blanc de la ligne sur laquelle se trouve le curseur ;
 o insertion d’une nouvelle ligne, sous la ligne courante;
 O insertion d’une nouvelle ligne, au dessus de la ligne courante;
 Lorsque l'insertion de texte est terminée, on quitte le mode
insertion pour passer au mode commande en appuyant sur la
touche <ESCAPE>.

92
Edition de texte avec vi
 Le Positionnement du Curseur
 l, <ESPACE> ou -> déplacent le curseur vers la
droite, d'un caractère (jusqu'en fin de ligne) ;
 h ou <- déplacent le curseur vers la gauche, d'un
caractère (jusqu'en début de ligne) ;
 j ou [arrowdown] déplacent le curseur vers le
bas, d'une ligne (jusqu'en fin de fichier) ;
 k ou [arrowup] déplacent le curseur vers le
haut, d'une ligne (jusqu'en début de fichier) ;

93
Edition de texte avec vi
 Recherche d'une Chaîne de Caractères
 /exp recherche la première occurrence correspondant
à l'expression rationnelle exp à partir de la position
courante du curseur, en avançant dans le fichier (la
recherche est circulaire) ;
 ?exp recherche la première occurrence correspondant
à l'expression rationnelle exp à partir de la position
courante du curseur, en parcourant le fichier en arrière
(la recherche est circulaire) ;
 n (next) répète la dernière commande / ou ? ;

94
Edition de texte avec vi
 Ajuster l'Écran
 CTRL+F Remonter d’un écran ;
 CTRL +B descendre d’un écran;
 z <CR> réaffiche le texte, la ligne courante
devenant la première ligne de l'écran ;
 z- réaffiche le texte, la ligne courante devenant la
dernière ligne de l'écran ;
 z. réaffiche le texte avec la ligne courante au
milieu de l'écran.

95
Edition de texte avec vi
 Manipulation de Fichiers
 :w ("write") enregistre le fichier ;
 :wq ("write and quit") ou ZZ enregistrent le
fichier et quittent l'éditeur ;
 :q ("quit") quitte l'éditeur si le fichier a été
enregistré ;
 :q! ("quit") quitte l'éditeur sans tenir compte des
modifications effectuées ;
Remarque : le caractère : utilisé dans ces
commandes (et qui doit être tapé) s'affiche sur la
dernière ligne de l'écran : la ligne de commandes.

96
Edition de texte avec vi
 Modification de Texte
 u annule la dernière opération effectuée ;
 U rétablit la ligne courante, même si plusieurs
opérations ont été effectuées dessus ;
 J joint la ligne courante et la suivante ;
 rx remplace le caractère sur lequel le curseur est
positionné par le caractère x ;
 w ("word)" avance d'un mot ;
 b ("back word") recule d'un mot ;

97
Edition de texte avec vi
 Copiage et Collage de Texte
L'éditeur vi gère 9 tampons dans lesquels les
derniers morceaux de texte effacés, coupés ou
copiés sont placés. On peut aussi utiliser des
tampons personnalisés nommés de a à z.
 numyy ou numY ("yank") copie num lignes à
partir de la ligne courante comprise (une ligne par
défaut) ;
 p ("put") colle ce qui a été copié ou effacé après
la position courante ;
 P ("put") colle ce qui a été copié ou effacé avant
la position courante ;
98
Montage de systèmes de
fichiers

99
Montage de systèmes de fichiers

 DOS et Windows utilisent la notion d'unité logique pour


fournir un accès aux ressources de stockage
( A: -> floppy, C: -> disque dur, ... E: -> lecteur CD)
 Tous les Unix utilisent la notion de montage :
- un périphérique est associé à un point de montage
(répertoire) par une « opération de montage »
(commande mount)

100
Montage de systèmes de fichiers
La commande mount peut être utilisée « à la main »
Exemples:
mount /dev/hda1 /
Monter la 1ere partition du 1er disque IDE à la racine de
l’arborescence du système du fichier.
mount /dev/sda1 /mnt/flash
Monter la 1ere partition du 1er disque Sata (les memoires
flash ou les disques externes USB sont considérés en
général comme disques Sata) sur le dossier /mnt/flash
101
Montage de systèmes de fichiers

mount /dev/dvdrom /mnt/dvd


Monter le support Dvd sur /mnt/dvd

Par la suite pour accéder à un périphérique monté, il suffit


d’accéder au point de montage correspondant.

ls /mnt/usb; cd /mnt/flash; cp myfile.doc ~


cp /mnt/dvd/* ./rep
find /mnt/usb -name “*.pptx” -type f -print

102
Montage de systèmes de fichiers
Tous les périphériques montés bénéficient du « cache
disque »
Avant d'extraire un périphérique amovible (clef USB, ...), on
DOIT le démonter en utilisant la commande umount,
pour synchroniser les écritures (vidage du cache disk)
autrement les écritures éffectuées sont perdues.

$ umount /dev/hda1
$ umount /dev/dvd
$ umount /dev/flash

103
Montage de systèmes de fichiers
Tous les montages permanents sont indiqués dans le
fichier /etc/fstab

104
Montage de systèmes de fichiers
La commande df affiche la liste des périphériques
montés avec quelques informations suplémentaires.

105
Mise en place d’un nouveau disque
 3 étapes sont nécessaires
 Création d’une partition : fdisk
 Initialisation du système de fichiers : mkfs
 Création d’un point de montage : mount
 1) Création d’une partition
 Partition principale de 100Mo avec « fdisk » sur /dev/sda
root@pc1:~# fdisk /dev/sda
Commande (m pour l'aide): n
Action de commande
e étendue
p partition primaire (1-4)
p
106
Mise en place d’un nouveau disque
Numéro de partition (1-4): 1
Premier cylindre (1-26, par défaut 1):
Utilisation de la valeur par défaut 1
Dernier cylindre ou +taille or +tailleM ou +tailleK
(1-26, par défaut 26): +100M
Commande (m pour l'aide): w
La table de partitions a été altérée!
Appel de ioctl() pour relire la table de partitions.
Synchronisation des disques.
Commande (m pour l'aide): q

107
Mise en place d’un nouveau disque
 1) Vérification de la partition sous « fdisk »
root@pc1:~# fdisk

Commande (m pour l'aide): p


Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 1 13 104391 83 Linux
 2) Initialisation du système de fichiers avec la commande « mkfs »
root@pc1:~# mkfs.ext3 /dev/sda1
mke2fs 1.40.8 (13-Apr-2010)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
108
Mise en place d’un nouveau disque
26104 i-noeuds, 104388 blocs
5219 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=1
Nombre maximum de blocs du système de fichiers=67371008
13 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
2008 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
8193, 24577, 40961, 57345, 73729
Écriture des tables d'i-noeuds : complété
Création du journal (4096 blocs) : complété
Écriture des superblocs et de l'information de comptabilité
du système de fichiers : complété

109
Mise en place d’un nouveau disque
 Création du point de montage
 Création du point de montage de type ext3 avec la commande

« mount »
root@pc1:~# mount -t ext3 /dev/sda1 /mnt/part1/
 Le répertoire « /mnt/part1 » doit être crée auparavant.

 Vérification du point de montage avec la commande « df »


root@pc1:~# df
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/sdc1 7913216 2716248 4798156 37% /
varrun 127856 108 127748 1% /var/run
varlock 127856 0 127856 0% /var/lock
udev 127856 64 127792 1% /dev
devshm 27856 12 127844 1% /dev/shm
lrm 127856 38176 89680 30% /lib/modules/2.6.24-
16-generic/vol..
/dev/sdd1 8045180 6987320 1057860 87% /media/GEN-USB
/dev/sda1 101086 5664 90203 6% /mnt/part1 110
Mise en place d’un nouveau disque
 Pour vérifier l’intégrité du système de fichiers
 Il faut « démonter » le système en préalable à la vérification

 Utilisation de la commande générique « fsck »

 Exemple :
 Supprimer d’abord le montage avec « umount »

root@pc1:~# fsck /dev/sda1


root@pc1:~# fsck /dev/sda1
fsck 1.40.8 (13-Apr-2010)
e2fsck 1.40.8 (13-Apr-2010)
/dev/sda1: clean, 2136/26104 files, 17541/104388 blocks

 Effectuer le montage après vérification pour accéder au système de


fichiers

111
Unité 4
Administration des utilisateurs et
des groupes

112
Gestion des comptes groupes

 Chaque utilisateur qui utilise le système doit être


connu de celui-
celui-ci par un nom et, éventuellement,
un mot de passe.
 Un utilisateur doit appartenir à un ou plusieurs
groupes d'utilisateurs pour être autorisé à utiliser
le système.
 Il existe plusieurs méthodes d'identification et de
contrôle des utilisateurs, nous ne parlerons ici
que de la méthode la plus simple mettant en
oeuvre les fichiers /etc
/etc//passwd et /etc
/etc/group.
/group.
113
Gestion des comptes groupes
 Les utilisateurs et les groupes sont repérés dans le
système par des numéros : uid pour le numéro
d'utilisateur (User IDentifier
IDentifier)) et gid pour le
numéro de groupe (Group IDentifier
IDentifier).
).

 Le numéro est unique pour un utilisateur ou un


groupe donné.

 L'identification d'un utilisateur s'effectue dans le


fichier /etc
/etc//passwd
passwd..
114
Hiérarchie de comptes
 Root: super utilisateur
Root:
 les permissions d ’accès ne lui sont pas

appliquées
 il peut tout faire sur la machine.

 compte pour l ’administrateur du système

 bin,, daemon, lp
bin lp,, sync
sync,, news, ftp …
 comptes utilisateur utilisés par différentes

applications et démons
 ne peuvent pas être utilisés comme login

 comptes ordinaires 115


Fichier de comptes utilisateurs
/etc
etc//passwd
 Un utilisateur est caractérisé par une ligne dans le fichier
/etc
etc//passwd
passwd..
 Une ligne de ce fichier est formée par les champs
suivants :
login:passwd:uid:gid:comment:home:shell
 login : Il s'agit du nom de l'utilisateur. C'est un
alphanumérique de 8 caractères maximum.
 passwd : Il apparaît dans ce fichier sous forme
codée.
 uid : Il s'agit d'un numéro unique de l'utilisateur.
Compris entre 0 et 65535. Les 100 premiers nombres
sont par convention réservés au système et ne
correspondent pas à des utilisateurs normaux. 116
Fichier de comptes utilisateurs
/etc
etc//passwd
 gid : Numéro de groupe. Chaque utilisateur appartient
à un groupe principal. Il pourra également appartenir à
des groupes secondaires. Cette notion de groupe
interviendra au niveau des permissions sur les fichiers.
 comment : Nom complet de l'utilisateur.
 home : Chemin complet de la directory attribuée à
l'utilisateur
 shell : Chemin complet du shell shell,, le programme qui
interagit avec l'utilisateur et qui permet de taper des
commandes (csh(csh,, sh, bash
bash,, tcsh
tcsh,, ...).

117
Fichiers de comptes utilisateurs
/etc
etc//passwd
 Exemple :
root :x:0:0:
:x:0:0:root
root:/
:/root
root:/
:/bin
bin//bash
kmaster:x:500:500:
kmaster:x :500:500:kmaster
kmaster:/home/
:/home/kmaster
kmaster:/
:/bin
bin//bash

 Nota le deuxième champ (x) spécifie q'il y a un mot de


passe et que celui-
celui-ci est crypté (dans /etc
/etc//shadow
shadow).
).
 L'UID est compris entre 0 (root
(root)) et la constante
UID_MAX (définie dans le fichier /etc
/etc//login.defs
login.defs).
).

118
Fichiers de comptes utilisateurs
/etc
etc//passwd
 ATTENTION :
Si au sein de ce fichier, plusieurs lignes possèdent le même
UID pour plusieurs noms de connexion différents, UN SEUL
utilisateur est en fait défini !
Exemple : on peut ainsi définir un utilisateur stop, dont
l'UID est 0 et qui exécute shutdown comme commande de
connexion.

119
Fichiers de comptes utilisateurs
/etc
etc//shadow
 Le fichier /etc
/etc//passwd est public (toute
personne qui a un compte sur la machine
peut le lire).
 Pour contrecarrer cette faille, certains
systèmes ont introduit le fichier /etc
/etc//shadow
 lisible uniquement par root
 contient les mots de passe des utilisateurs, qui
disparaissent alors de /etc
/etc//passwd
passwd..
 Si on ajoute un utilisateur à la main, cela implique
d'éditer les 2 fichiers.

120
Fichiers de comptes utilisateurs
/etc/shadow
 Une ligne /etc/shadow est composée des champs
suivants:
 Nom de login

 mot de passe crypté

 Date de la dernière modification du mot de passe en


nombre de jours depuis le 1 janvier 1970.
Il est mis à jour par le système lorsqu'on change de
mot de passe.
 Nombre de jours durant lesquels le mot de passe est
encore valide

121
Fichiers de comptes utilisateurs
/etc/shadow
 Nombre de jours après lesquels le mot de passe doit
être changé
 Nombre de jours avant l'expiration du mot de passe
impliquant l'avertissement de l'utilisateur
 Nombre de jours après l'expiration provoquant la
desactivation du compte
 Numéro du jour depuis le 1er janvier 1970 à partir
duquel le compte a été désactivé
 Champs réservé

122
Fichiers de comptes utilisateurs
/etc/shadow
 Exemple :
 kmaster:$1$zBvl.scX$hkqgDvBu40EqpAE
wZfZZQ0:11493:0:99999:7:::
 le mot de passe en cours a été mis en place le
11493e jour après le 1/1/1970 (date de référence),
 il pourra à nouveau être changé 0 jour après cette
date
 il devra obligatoirement être modifié avant le
99999e jour après la date de création (autant dire
qu'il n'expire jamais...).

123
Dossier /etc
/etc//skel
 Après la création d’un compte
utilisateur, tous les fichiers de /etc
/etc//skel
sont copiés dans le répertoire personnel
de cet utilisateur.

 On place dans ce répertoire les fichiers


dont tout le monde doit avoir une copie

124
La commande su
 La commande su permet de changer l’identité
de l’utilisateur courant.
 Syntaxe su [[-[[-] utilisateur]
 Utilisateur est l’utilisateur dont on veut prendre
l’identité
 Si aucun utilisateur n’est spécifié, le changement
se fait vers l’utilisateur root
 La commande demande un mot de passe
avant d’obtempérer. (sauf si root)

125
LE FICHIER /etc/group
- Définit les groupes d'utilisateurs
- Chaque ligne définit un groupe
- Permet de faire le lien entre :
Le numéro de groupe (GID)
La liste des utilisateurs de ce
groupe
- Une ligne contient quatre champs,
séparés par deux points (:)

126
LE FICHIER /etc/group
1) Nom du groupe :
- Nombre maximum de caractères : 8.
- Il est unique sinon conflit avec la commande
newgrp.
2) 2) Mot de passe :
- Champ généralement vide.
- Lorsqu ’il existe, il permet d'augmenter la
sécurité du système.
- Il est demandé lorsqu'un utilisateur essaie
de changer de groupe.

127
LE FICHIER /etc/group
3) Numéro du groupe (GID) :
- Lien entre les fichiers /etc/group et /etc/passwd.
- Il est appelé numéro de groupe primaire (NGP) dans le
fichier /etc/passwd, .
- Chaque NGP possède une entrée dans le fichier
/etc/group
- C ’est cet identifiant qui est connu du système,
et non le nom du groupe, qui n'est utilisé que pour
l'affichage.

128
LE FICHIER /etc/group
 4) Les membres
- Chaque groupe comprend une liste des membres,
séparés chacun par une virgule.
- La commande newgrp permet à chaque membre de
changer de groupe
 Intérêts
- Accès à des fichiers communs à un autre groupe.
- Un utilisateur peut appartenir à plusieurs groupes
(groupes secondaires) (secondary group set).

129
Gestion des comptes
 Créer un compte pour un nouvel utilisateur
 Commande useradd
 Syntaxe : useradd [options] nom_login
 Options :
-u uid pour fixer l'identifiant uid
-g groupe-
groupe-primaire

-G liste fixe l'appartenance de l'utilisateur à une liste de groupes secondaires


(séparateur , sans espace)
-s shell par défaut, attribution du shell par défaut bash
-c commentaire

-d rep
rep.. Personnel par défaut dans le répertoire /home
/home
-m pour créer le répertoire personnel
-e date-
date-expiration fixe la date d'expiration du compte (format MM/JJ/AA)
-k rep
rep--skel recopie le contenu de rep
rep--skel dans le rép
rép.. personnel, par défaut
/etc
etc//skel
# Useradd –c « compte de test » -m –d /home/toto –G test –k /etc
/etc//skel toto

130
Gestion des comptes
commande useradd
 Pour examiner les valeurs par défaut
appliquées par useradd :
 commande useradd -D ou
 éditer /etc/default/useradd
GROUP=100 identifiant du groupe primaire
HOME=/home racine des rép. personnels
INACTIVE=--1
INACTIVE= (nb de jours avant destruction du
compte)
EXPIRE= nb de jours avant expiration du mot de
passe
SHELL=/bin/bash shell de connexion attribué au
compte
SKEL=/etc/skel fichiers recopiés par défaut dans
chaque rép. personnel
131
Gestion des comptes
 La commande passwd
 Syntaxe : passwd [options ] nom_login
 Options
-d l'utilisateur pourra se connecter sans mot de
passe !
-l pour verrouiller le compte et empêcher sa
connexion.
-u pour déverrouiller.

132
Gestion des comptes
 Connaître l'uid
l'uid et le gid de l'utilisateur courant
 Commandes ( id, whoami, who am i )
bash:> id
uid=501(stage1) gid=501(stage1) groups=501(stage1), 504(stagiaire)

 Pour décrire un utilisateur


 Commande chfn
Cette commande permet d'indiquer dans le champ
numéro 5 du fichier /etc/passwd différentes
informations sur un utilisateur

133
Gestion des comptes
 Supprimer le compte d'un utilisateur
(non connecté)
 La commande userdel
 Syntaxe : userdel [-r] nom_login
 L'option -r supprime aussi le réprép.. personnel de
l'utilisateur
 La commande supprime toute trace de l'utilisateur
dans le fichier de configuration : /etc
/etc//passwd y
compris dans les groupes d'utilisateurs.
 Si l’utilisateur est connecté, il faut ajouter l’option -f

134
Gestion des comptes
 Modifier le compte d’un utilisateur
 La commande usermod
 Syntaxe : usermod [options] nom_login
Les options sont les mêmes que useradd
 Exemple
usermod -G stagiaire,prof stagex
Ajoute stagex dans les 2 groupes stagiaire et profs (qui doivent
exister auparavant)
Après exécution de la commande le compte stagex n’appartient
plus qu’aux groupes indiqués par celle-
celle-ci. L’ancienne appartenance
de stagex est écrasée.

135
Les groupes
 Un groupe est un ensemble d'utilisateurs.
 Chaque utilisateur doit faire partie d’au moins un
groupe.
 Dans /etc
etc//passwd chaque utilisateur possède un
groupe par défaut (primaire), précisé par son
identifiant gid dans ce fichier.
 L'appartenance au groupe primaire n'étant pas
exclusive, tout utilisateur peut faire partie
de plusieurs autres groupes.
 La liste des groupes est donnée par le fichier
/etc
etc/group
/group
136
Le fichier /etc
/etc/group
/group
 Le fichier de déclaration des groupes /etc/group
contient une ligne par groupe dans un format
similaire au fichier /etc/passwd.
 Une ligne de ce fichier comporte les champs suivants,
séparés par des caractères `:' :
 nom du groupe
 mot de passe du groupe
 numéro du groupe (gid)
 liste des utilisateurs appartenant au groupe séparés par des
virgules
 Par exemple :
actrices:*:400:sandra,meg,michelle

137
Commandes utiles
 Pour lister tous les groupes d'un utilisateur :
groups nom_login
 Pour créer un nouveau groupe
groupadd nom_groupe
 Supprimer un groupe : groupdel nom_groupe
Le groupe est supprimé du fichier /etc /group..
etc/group
 modifier un groupe
 groupmod -n nouveau_nom nom_groupe
 groupmod –g gid nom_groupe

 Pour ajouter un utilisateur à un groupe


Le plus simple est d'éditer le fichier /etc /group et d'ajouter
etc/group
une liste d'utilisateurs (séparés par des virgules) sur la
ligne du groupe.
138
Administrer un groupe
L’administration d’un groupe consiste à ajouter ou
supprimer des utilisateurs à ce groupe.

L’administrateur root peut déléguer ce pouvoir à


un autre utilisateur en utilisant la commande
gpasswd.

139
Administrer un groupe
Avec la commande gpasswd on peut faire les
taches suivantes:
1. donner un mot de passe à un groupe. (sert à
contrôler le changement du groupe principal des
utilisateurs)
# gpasswd etudiants
2. nommer un administrateur pour un groupe.
#gpasswd -A ali etudiants

140
Administrer un groupe
3. Ajouter un utilisateur à un groupe stagiaire.
(utilisée par l’administrateur désigné du groupe)

ali@Pc1~]$ gpasswd –a aziz etudiants

4. supprimer un utilisateur d’un groupe.(idem)

ali@Pc1~]$ gpasswd –d aziz etudiants

141
Administrer un groupe

5. supprimer le mot de passe d’un groupe.

gpasswd –r etudiants

6. spécifier la liste des utilisateurs d’un


groupe.

gpasswd –M said,rachid,khalid etudiants


uniquement root

142
Administrer un groupe
7. interdire aux utilisateurs de prendre
momentanément un groupe comme groupe
primaire.

gpasswd –R etudiants

143
Changement du groupe primaire
 La commande newgrp permet à un utilisateur de
changer son groupe principal courant cad
uniquement pendant la session ouverte après
quoi il reprend son groupe principal d’origine
automatiquement.
 Exemple :

said@Pc1~]$ newgrp etudiants


said@Pc1~]$ id
uid=550 (said
uid=550 (said)) gid
gid=650
=650 (etudiants
(etudiants))
groups=550(said
groups=550( said),650(
),650(etudiants
etudiants),659(
),659(users
users),678(
),678(bde
bde))
144
Changement du groupe primaire

 Noter que le groupe said est toujours déclaré


dans /etc/group comme groupe primaire de said
 La commande précédente est exécutée
automatiquement si said est membre du groupe
etudiants.

#grep –w ^etudiants /etc/group


etudiants:x:650:said,aziz

145
Changement du groupe primaire
Sinon il doit fournir le mot de passe du groupe
#gpasswd –d said etudiants
#grep –w ^etudiants /etc/group
etudiants:x:650:aziz
#su – said
said@Pc1~]$ newgrp etudiants
Password:
 Noter que le changement du groupe primaire reste
valide uniquement pendant la session courante.
146
Changement du groupe primaire

 Si le groupe a été protégé par la commande:


gpasswd –R etudiants alors:

said@Pc1~]$ newgrp etudiants


Password:
Invalid password.

La commande n’aboutit pas même si le mot de


passe est correct.

147
Unité 5
Administration des
d droits
d’accès

148
Gestion des droits d’accès
 Tout utilisateur possède un numéro d'utilisateur
et un numéro de groupe primaire.

 On distingue trois types d'utilisateurs potentiels :


 le propriétaire du fichier ("user", u);

 les utilisateurs appartenant au même groupe


("group", g);
 les autres utilisateurs ("other", o).

149
Gestion des droits d’accès
 Linux est un système multi-utilisateurs
 Plusieurs utilisateurs se partagent l’espace disque

 Les fichiers et répertoires d’un utilisateur ne doivent pas

être accessibles par les autres


 Les fichiers de configuration du système doivent être

protégés
 Nécessité de spécifier des droits pour chaque
fichier/répertoire
 Plusieurs types de droits : Lecture (r), écriture (w),

exécution (x)

150
Gestion des droits d’accès
 Ces droits s’appliquent à trois catégories
d’utilisateurs :
 Le propriétaire (user) du fichier

 Le groupe (group) propriétaire (Tous les

utilisateurs membres du groupe)


 Les autres (others). Désigne tous les utilisateurs

qui ne sont pas propriétaires et qui ne sont pas


membres du groupe du propriétaire
 Les droits sont à l’origine d’un grand nombre d’erreurs
de configuration

151
Gestion des droits d’accès
 Trois types d'opérations sur les fichiers sont possibles
 la lecture ("read", r);

 l'écriture ("write", w);

 l'exécution ("execute", x).

 Ces droits n’ont pas la même signification pour un fichier


que pour un répertoire
 Pour un fichier :
 r : Lecture (afficher)

 w : Ecriture (modification)

 x : Exécution (exécution d’un script ou d’un fichier

programme)
152
Gestion des droits d’accès
 Pour un répertoire
 r : Lire le contenu, lister les fichiers (avec ls par exemple)

 w : Modifier le contenu, créer et supprimer des fichiers

(avec les commandes « cp », « mv », « rm »)


 x : Permet d’accéder aux fichiers du répertoire. Mais

aussi de naviguer dans les sous-répertoires (avec « cd »)


 En général, le droit w est souvent associé au droit x

 Il y a donc neuf combinaisons possibles utilisateur-opération.


C'est pourquoi les protections sont codées sur neuf bits.

153
Gestion des droits d’accès
 Pour copier un fichier dans un sous-répertoire il
faut disposer d’un certain nombre de droits.
Exemple: pour la commande suivante
$ cp file1 rep2/rep3/
il faut avoir les autorisations suivantes:
1. lire le fichier file1 : droit r sur file1

2. traverser les sous-répertoires rep2 et rep3 :


droit x au moins pour l’utilisateur qui effectue la
copie.
3. écrire dans rep3 : droit w

154
Modification des droits d’accès

chmod modification_des_droits fichier1


[fichier2 …]
 On peut utiliser les signes +, - ou = pour
ajouter, supprimer ou fixer des droits à l'une ou
l'autre des catégories u, g, o ou a pour toutes
(all) les catègories en précisant le type de droit
d'accès, r, w ou x.
 + pour ajouter un droit.

 - pour supprimer un droit.

 = pour fixer un droit.


155
Modification des droits d’accès
 Le mode caractère
chmod [ ugoa ] [- + = ] [droit] nom_du_fichier

 Pour donner les droits d’écrire et exécuter le


fichier file1 au groupe de aziz et aux autres, aziz
doit taper la commande :
chmod go+wx file1

Pour retrancher le droit d’écrire à son groupe, aziz


doit taper :
chmod g–w file1

156
Modification des droits d’accès
 Pour donner le droit d’écrire dans le fichier file
à son groupe et le droit d’exécuter aux autres,
on peut taper la commande :

chmod g+w, o+x file

157
Modification des droits d’accès
 Si le changement de droits s'applique à un
répertoire, on peut changer tous les droits
des fichiers et répertoires inclus dans ce
répertoire via l'option -R.

chmod –R g+w myrep

158
Modification des droits d’accès

chmod nombre_en_base_8 fichier1


[fichier2 …]
 chmod utilise le codage binaire, fondé sur
l'association de valeurs numériques aux
différentes permissions :
 lecture : 4,

 écriture : 2,

 exécution : 1,

 pas de permission : 0.

159
Modification des droits d’accès
 Chaque triplet se code par l'addition de 4,
2, 1, ou 0.
 Pour un rwx il faudra ajouter 4+2+1=7,

 pour r-x : 4+0+1=5 etc.

 La commande chmod permettant de


positionner rwxr-x--- sur fic1 est la
suivante :
chmod 750 fic1
160
Modification des droits d’accès
 Exemples :
$ chmod go+wx file1
Son équivalent en mode décimal :
$ chmod 677 file1

$ chmod g+w,o+x file1


Son équivalent en mode décimal:
$ chmod 665 file1
Remarque: Pour ces commandes on a considéré
que les droits par défaut sont rw-rw-r--
161
Modification des droits d’accès
 Le droit « w » accordé à un répertoire permet :
 D’y effacer des fichiers quels que soient le propriétaire et

les droits qui s’appliquent à ces fichiers


 Quand il est donné à un groupe, n’importe quel

utilisateur de ce groupe peut supprimer des fichiers


(dangereux)
 Les droits ne s’appliquent pas au « super-utilisateur »
 Il a tous les droits sur tout le système de fichiers

 C’est une très grande responsabilité puisque sous Linux

tout ou presque repose sur les fichiers


 La tendance évolue vers une utilisation très modérée voire
interdite du compte « root » 162
Modification des droits d’accès
 Le droit « x » accordé à un répertoire est un préalable
indispensable pour exercer des droits sur les fichiers qui
s’y trouvent.
 L’utilisateur qui crée un fichier en devient le propriétaire
 Ce fichier aura comme groupe propriétaire, le groupe

primaire du propriétaire (Groupe principal auquel


appartient le propriétaire)

163
Modification des droits d’accès
 Problèmatique:
 Créer un répertoire dossier (en tant que root
depuis la racine ) et lui donner les droits rwx aux
autres.
 Créer y un fichier essai1.
 Donner aucun droit aux autres sur ce fichier
essai1.
 Connectez-vous en tant que utilisateur said et
essayer de détruire essai1.
Que remarquez vous ?
164
Modification des droits d’accès
 En règle générale les droits sur un fichier le
protègent contre la lecture , l’écriture ou
l’exécution mais ne le protègent pas contre
une suppression.
 Pour le protéger contre une suppression il
suffit de ne donner que le droit de lire au
répertoire qui le contient.

165
Droits d’accès par défaut
 Sous Unix :
 - Se connecter en tant que root
 - Créer un fichier vide nommé essai
 - Remarquer que ses droits sont : -rw-r--r--
Ce qui équivaut à 644 en mode décimal

166
Droits d’accès par défaut
 Taper la commande umask,
 vous remarquez la valeur 022 appelée valeur
de masque de création de fichier par défaut.

 Créer un répertoire rep par la commande


mkdir rep et remarquer que ses droits sont :
rwxr-xr-x
Ce qui équivaut à 755 en mode décimal

167
Droits d’accès par défaut

 Par défaut unix affecte les droits max sur les fichiers
normaux et les répertoires :
 Rép 777 (rwxrwxrwx)
 Fichier normal 666 (rw-rw-rw-)
 Les droits effectifs sont obtenus par :
droits_max - masque
 Exemple
 Si on souhaite un accès par défaut en lecture/écriture pour
le propriétaire et en lecture seule pour le groupe et le reste
de monde (soit 644), on utilise 022 comme masque
666 – 644 = 022
168
Droits d’accès par défaut

 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)

169
Changement de propriétaire et de
groupe
 La commande chown (change owner) permet de changer
l’utilisateur et/ou le groupe propriétaire d’un ou plusieurs
fichiers ou répertoires
# chown utilisateur[:groupe] fichier1 [fichier2 …]
Exemples
 Modification du propriétaire du fichier lettre.doc
# chown said dossier/lettre.doc
 Modification du groupe propriétaire du fichier lettre.doc
# chown :compta dossier/lettre.doc
 Modification du propriétaire (said) et du groupe (compta)
# chown said:compta dossier/lettre.doc
170
Changement de propriétaire et de
groupe
 La commande chgrp permet de changer le
groupe
chgrp nom_groupe fichier1 [[fichier2 …]

Exemple:

$ chgrp etudiants /users/exercices.txt


$ chgrp profs /users/cours.txt /users/planning.txt

171
Changement de propriétaire et
de groupe
 Chaque utilisateur peut utiliser la commande
chgrp mais ne peut donner un fichier qu’à son
groupe principal ou à un groupe auquel il
appartient.
 Un utilisateur ne peut modifier le groupe d’un
fichier que s’il lui appartient.
 L’appartenance au groupe n’est pas suffisante.

172
Droits d’accès étendus:
Le SUID
 Lorsqu'un programme est exécuté par un
utilisateur, les tâches qu'il accomplira seront
restreintes par ses propres droits, qui
s'appliquent donc au programme.
 Le SUID permet d'allouer temporairement à un
utilisateur les droits du propriétaire du fichier,
durant l’exécution de celui-ci

173
Droits d’accès étendus:
Le SUID
 Lorsque le droit SUID est appliqué à un exécutable
et qu'un utilisateur quelconque l'exécute, le
programme détiendra alors les droits du
propriétaire du fichier durant son exécution.

 Bien sûr, un utilisateur ne peut jouir du droit SUID


que s'il détient par ailleurs les droits d'exécution du
programme.

174
Droits d’accès étendus:
Le SUID
 Exemple: la commande « passwd »
 Elle permet à l’ utilisateur de modifier son mot de passe

 « passwd » doit écrire dans le fichier « /etc/shadow »

cependant :
root@pc1~]# ls -l /etc/shadow
-rw-r----- 1 root shadow 700 2010-12-04 18:39 /etc/shadow
Il n ya aucune permission d’écriture sur /etc/shadow.
Si on fait un affichage long sur la commande passwd
root@pc1 /usr/bin/]# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 28480 2007-02-27 08:53 passwd.
175
Droits d’accès étendus:
Le SUID
 Le «s» signifie que le SUID est positionné sur cette
commande, ce qui permet à n’importe quel utilisateur qui
l’éxecute de pouvoir écrire sur le fichier /etc/shadow parce
qu’il bénéficie pendant l’éxecution des droits de root .
 Idem pour la commande mount

Remarque:
 Des restrictions de droit ont été faites sur le drapeau SUID :

 pour un fichier de script, l'exécution se fera sans tenir

compte du drapeau SUID


 si un utilisateur autre que le propriétaire modifie le

fichier, alors le bit SUID est remis à 0.


176
Droits d’accès étendus:
Le SGID
 Identique au SUID mais appliqué au groupe propriétaire
 La commande obtiendra les droits du groupe propriétaire

s’il elle est exécutée par un autre utilisateur


 Attention, appliqué à un répertoire, le SGID :
 Modifie le groupe propriétaire d’un fichier créé dans le

répertoire
 Ce ne sera plus le groupe primaire du propriétaire mais

plutôt le groupe propriétaire du répertoire


 Il y a donc un mécanisme d’héritage entre le répertoire

et les fichiers qui y sont créés.

177
Droits d’accès étendus:
Le SGID
 Exemple :
root@pc1~]#ls –ld compta
drwxrws--- 2 root agents 4096 2010-08-24 13:05 compta
(le SGID est positionné)
said@pc1 compta] $ touch nouveau.txt
said@pc1 compta] $ ls –l nouveau.txt
-rw-r--r-- 1 said agents 0 2010-08-24 13:09 nouveau.txt
said@pc1 compta]$ groups
said said
Le fichier “nouveau.txt” a pour groupe propriétaire agents
même s’il vient d’être crée par said dont le groupe primaire
est said 178
Droits d’accès étendus
commandes
 Définition du SUID et du SGID bit
chmod u+s fichier_programme
chmod g+s fichier_programme
chmod g+s dossier
Exemples:
root@pc1~]# chmod u+s myscript.sh
root@pc1~]# chmod g+s dossier
Ou
root@pc1~]# chmod 4755 myscript.sh
root@pc1~]# chmod 2755 dossier
179
Droits d’accès étendus:
Le Sticky bit
 Un utilisateur qui a le droit d’écrire dans un répertoire peut
supprimer tous les fichiers de ce répertoire y compris ceux
qui ne sont pas les siens.

 Si le Sticky bit est positionné sur le répertoire , seul le


propriétaire d’un fichier/dossier pourra supprimer ce
fichier/dossier du répertoire.

180
Droits d’accès étendus:
Le Sticky bit

said@pc1~] $ mkdir rep ; touch rep/file1


said@pc1~] $ chmod o+t rep
Ou
said@pc1~] $ chmod 1777 rep

said@pc1~] $ls –ld rep


drwxrwxrwt 2 said said 4096 2010-08-24 13:05 rep
(le Sticky bit est positionné)

 root@pc1~]# chmod o+x /home/said


181
Droits d’accès étendus:
Le Sticky bit

aziz@pc1~]$ rm –f ../said/rep/file1
Impossible de supprimer file1; opération non autorisée.
aziz ne pourra pas supprimer file1 même s’il peut accéder au
dossier personnel de said (droit d’exécution du dossier
/home/said pour les autres)
Le sticky bit empêche aziz de supprimer file1 .
Les données de chaque utilisateur sont alors protégées contre
une suppression hasardeuse par un autre.

182
ACL sur les fichiers

L’option chmod –o permission met tous les


utilsateurs en dehors du groupe primaire
du propriétaire du fichier à pied d’égalité
vis-à-vis du fichier.
 Les ACL (Access Control List) permettent

de préciser des droits pour des utilisateurs


ou groupes spécifiques

183
ACL sur les fichiers
Pour ajouter une ACL sur un fichier

Syntaxe
setfacl -m permissions fichierOuDossier

les permissions s'écrivent sous cette forme :

préfixe:[utilisateurOuGroupe:]droits

184
ACL sur les fichiers
Exemples:

setfacl -m u: aziz :rw- /rep/test


affecte le droit rw sur le fichier test pour aziz
setfacl -m g:rachid :r-- /rep/test
affecte le droit r sur le fichier test pour le groupe rachid
setfacl -x u:500 /rep/test
Enlève tous les droits à l’utilisateur à uid 500 sur test

185
ACL sur les fichiers
setfacl -b /rep/test
Efface tout le contenu de l'ACL du fichier test
setfacl -m d:o:rx /rep
Crée une ACL par défaut sur le dossier /rep
qui affecte le droit r-x aux autres sur tous
les fichiers crées dans /rep
getfacl /rep/test
Affiche l’acl du fichier /rep/test
186
Unité 6

Les packages

187
Gestion de packages
 Combinaison dans un même fichier (rpm)
 informations sur le programme
 les fichiers exécutables, librairies, documentation
 les scripts d ’installation et de désinstallation
 les fichiers de configuration
 les informations de dépendance
 Le nom d’un rpm respecte un format précis
de type nom-
nom-version.arch.rpm où :
 nom = nom du package/prog
 version = version du package/prog
 arch = architecture pour lequel est fait le prog/package.
188
Red Hat Package Manager
(RPM)
 on peut installer et désinstaller des
programmes par une seule
commande : rpm
 /var/lib/rpm, contient une BDD des
RPMs installés

189
Installation des RPMs
 Syntaxe de base
 rpm -i nom_package.rpm ( installation)
 rpm -F nom_package.rpm (Freshening)
 installation si une version ancienne de ce package est déjà

installée
 rpm -U nom_package.rpm (Upgrading)
 installe et désinstalle l’ancienne version qui est enregistrée avec

l ’extension .rpmsave
 options
 v : mode bavard
 h : affiche 50 marques (hash marks)
 --nodeps
-- nodeps : sans tenir compte des dépendances

190
Désinstallation de RPM
 Pour désinstaller un RPM, on utilise la
commande
 rpm -e nom_package

 options:
 --nodeps
-- nodeps : ignore les dépendances

191
RPM querying
 Pour connaître le contenu d’un RPM installé
 syntaxe de base
 rpm -q [ nom_package ]
 options :
 a : chercher tous les RPM installés
 f <file> : chercher le RPM d ’où provient le fichier file
 p<package--file> : affiche les fichiers de ce package (non
p<package
encore installé)
 i : affiche les informations du package
 l : affiche la liste des fichiers du package
 s : affiche l’état de tous les fichiers
 d : affiche les fichiers de documentation
 c : affiche les fichiers de configuration

192
Vérification des RPMs
 Vérifie les fichiers actuelles avec le RPM original
 taille
 checksum MD5
 Permissions, type
 propriétaire
 groupe
 syntaxe de base
 rpm -V nom_package

 options
 f <file> vérifie le fichier file
 a vérifie tous les packages
 p <package-
<package-file> vérifie par rapport au RPM original

193
Outils graphiques
 kpackage
 Il fonctionne dans l'environnement Kde,
 Il n ’est pas fourni en standard dans les distributions RedHat.
 gnorpm
 C ’est un logiciel fourni avec l'environnement graphique gnome.
 up2date
 est un outil standard de la distribution RedHat (version 6.1 et
supérieure)
 il permet la mise à jour de la distribution.
 Il cherche sur le serveur ftp de redhat les packages mis à jour pour la
distribution.
 Il présente ensuite une page web permettant de sélectionner les
packages à mettre à jour.

194
Unité 6

Schedueling

195
Schedueling
 Automatiser les taches de routine
 Lancement automatique des taches à des
moments spécifiques
 Le démon crond fait le scheduling pour les fichiers
conrontab
 La commande anacron exécute les jobs anacron
 Le démon atd est responsable d’exécuter les jobs
soumis par les commandes at ou batch

196
cron
 Les jobs sont configurés dans des fichiers crontab
 Syntaxe d’une ligne
[minute][heur][jour--du
[minute][heur][jour du--mois][mois][jour
mois][mois][jour--de
de--semaine][job]
 chaque minute, crond cherche dans les fichiers
crontab s’il y a un job à lancer
 Les fichiers crontabs des utilisateurs sont enregistrés dans
/var/spool/cron
/var/spool/ cron//username
 le fichier crontab système est /etc
/etc//crontab
 tous les fichiers de /etc
/etc//cron.d sont considérés comme des
fichiers crontab

197
Exemple d ’un fichier crontab
utilisateur
0 8 * * * cmd1
0,30 9 * * * cmd2
0,30 8-18 * * * cmd3
*/5 * * * * cmd4
12 13 1 * * cmd5
49 23 16 9 * cmd6
0 15 * * 1 cmd7
32 14 1 1 1 cmd8
198
Commandes crontab
 Un utilisateur peut modifier son crontab, mais
il ne peut pas signaler à crond ce
changement
 avec la commande crontab (SUID root) c ’est
possible
 syntaxe
 crontab -l affiche crontab de l’utilisateur courant
 crontab -r supprime crontab de l’utilisateur courant
 crontab -e édit crontab de l’utilisateur courant
NB root peut utiliser -u username pour spécifier
un utilisateur autre que root.
199
Crontab système
 Le fichier crontab du système est /etc/crontab
 le répertoire cronatb système est /etc/cron.d
 tous les fichiers de ce répertoire sont lu par crond
 syntaxe
 on peut définir des variables d ’environnement
 spécifier l’uid sous lequel la commande va être exécuter
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-
run-parts /etc/cron.hourly
02 4 * * * root run-
run-parts /etc/cron.daily
22 4 * * * root run-
run-parts /etc/cron.weekly
42 4 1 * * root run-
run-parts /etc/cron.monthly

200
at
 La commande at exécute une
commande à un moment donnée.

# at 4am
ps aux
^d
# at -f bshfile 16:00 + 3 days
Lit les taches à executer dans le fichier bshfile

201
Contrôle des jobs at
 Liste des jobs
$at -l
$atq
 annuler un job
$at -d job
$atrm job
 permission d ’utilisation de at
 /etc/at.allow
 /etc/at.deny

202
batch
 Exécute une commande quand le
système et moins chargé

$batch
echo la charge est minime
^d

203

Vous aimerez peut-être aussi