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 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
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
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.
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
21
Systèmes de fichiers Linux
ext4
Successeur de ext3. Il est journalisé, c'est à dire qu'il
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
1 partition <= 16 Eo
26
LES COMMMANDES DE BASE
Syntaxe d’une commande linux
Options:
-f: force le redémarrage
28
Niveaux d'exécution du système
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
32
Niveaux d'exécution du système
33
Connaître le niveau d'exécution courant
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 -
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
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
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.
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
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
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
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
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),
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
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)
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
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,
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
(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
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:
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.
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
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
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
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.
Exemple :
Supprimer d’abord le montage avec « umount »
111
Unité 4
Administration des utilisateurs et
des groupes
112
Gestion des comptes groupes
appliquées
il peut tout faire sur la machine.
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
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
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
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.
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
-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)
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
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)
141
Administrer un groupe
gpasswd –r etudiants
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 :
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
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.
149
Gestion des droits d’accès
Linux est un système multi-utilisateurs
Plusieurs utilisateurs se partagent l’espace disque
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
151
Gestion des droits d’accès
Trois types d'opérations sur les fichiers sont possibles
la lecture ("read", r);
w : Ecriture (modification)
programme)
152
Gestion des droits d’accès
Pour un répertoire
r : Lire le contenu, lister les fichiers (avec ls par exemple)
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
154
Modification des droits d’accès
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 :
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.
158
Modification des droits d’accès
é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,
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.
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
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:
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.
174
Droits d’accès étendus:
Le SUID
Exemple: la commande « passwd »
Elle permet à l’ utilisateur de modifier son mot de passe
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 :
répertoire
Ce ne sera plus le groupe primaire du propriétaire mais
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.
180
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
183
ACL sur les fichiers
Pour ajouter une ACL sur un fichier
Syntaxe
setfacl -m permissions fichierOuDossier
préfixe:[utilisateurOuGroupe:]droits
184
ACL sur les fichiers
Exemples:
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