Admi ni strati on
Admi ni strati on
Systme
Systme
GNU/ Li nux
GNU/ Li nux
Admi ni strati on Systme
Admi ni strati on Systme
GNU/ Li nux
GNU/ Li nux
Historique
Composants
Organisation
Shell
Commandes de base
Utilisateurs & Droits
Disques & Filesystems
Admi ni strati on Systme
Admi ni strati on Systme
GNU/ Li nux
GNU/ Li nux
Editeurs
Shell & commandes avancs
ac!ages
"oot & #unlevels
#seau
$nter%aces graphiques
Fichiers spciau&
Etudes de cas
Hi stori que
Hi stori que
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 38(!8) "# $lones%&
'inus (orvalds
Hi stori que
Hi stori que
Uni &
Uni &
Uni x
Uni x
hi l osophi e
)* Ce qui est petit est beau
+* Chaque programme %ait une chose et la %ait bien
,* Construire un prototype d-s que possible
.* Choisir la portabilit plut/t que l0e%%icacit
1* Enregistrer les donnes dans des %ichiers plats
2* Utiliser le logiciel comme une %orce
3* Utiliser les scripts shells pour accro4tre cette %orce
5* Eviter les inter%aces utilisateur captives
6* Faire de chaque programme un %iltre
Uni x
Uni x
hi l osophi e
)* Small is beauti%ul7
+* 8a!e each program do one thing 9ell7
,* "uild a prototype as soon as possible7
.* Choose portability over e%%iciency7
1* Store data in %lat te&t %iles7
2* Use so%t9are leverage to your advantage7
3* Use shell scripts to increase leverage and portability7
5* :void captive user inter%aces7
6* 8a!e every program a %ilter7
Uni x
Uni x
hi l osophi e
timtowtdi
(here is more than one 9ay to do it
leitmoti' perl, (ui s'appli(ue tr)s bien * +ni,
Uni x
Uni x
hi l osophi e
Sous uni&; tout est %ichier
%ichiers <=*
rpertoires
devices
liens
pipes
soc!ets
Uni x
Uni x
hi l osophi e
Sous uni&; les %ichiers doivent >tre
lisibles par l0homme
e&ploitables simplement par la machine
777donc sous Uni& ?
tous les %ichiers de con%iguration sont te&te777
777ou gnrs @ partir de %ichiers te&te
pas de binaire ? les %ichiers de con%iguration
doivent >tre ditables simplement <Aregistry*
pas de %ormats e&otiques <A&ml*
pas de %ormats %erms <Adoc;byo;777*
Uni x
Uni x
hi l osophi e
8ultitBche
plusieurs processus s0e&cutent en m>me
temps
l0OS @ le contr/le des processus
8ultiutilisateur
plusieurs utilisateurs peuvent se connecter
simultanment
plusieurs utilisateurs peuvent e&cuter des
processus simultanment
Hi stori que
Hi stori que
CDU
CDU ? ECnu0s Dot Uni&G
romu par la Free So%t9are Foundation
ObHet ? dveloppement d0outils et de
licences libres
)65. ? emacs
)653 ? gcc
)656 ? C'v)
)66) ? C'v+
)663 ? lessti%
Hi stori que
Hi stori que
'i nu&
:oIt )66)
)
-re
version
code source ? 2, Jo
)66. ?
+ branches
code source ? ) 8o
Kuin )662 ? v+7L
code source ? 1 8b
port :lpha
S8
8ars +LL2 ? v+727)); M+LL 8b
+LN architectures supportes
<&52; ppc; sparc; arm; ; avr,+; 777*
Hi stori que
Hi stori que
'i nu&
360x10
12
FLOPS
1x10
9
FLOPS
20x10
3
MIPS
1 MIPS
GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS
Jernel ? 'inu&
mise @ disposition des ressources machines
entres Odev; Oproc; Osys
allocation mmoire
gestion de l0acc-s au& ressources machines
droits
ordonnancement
gestion des acc-s
modulaire
chargement dchargement de modules <drivers*
automatique ou manuel
GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS
OS ? CDU
gestion du syst-me via l0inter%ace propose
par le lernel
syst-mes de %ichiers
rseau
droits
priphriques
777
sous %orme d0utilitaires; ou de librairies
shell; ls; rm; 777
libusb; libpam; 777
GNU/ Li nux
GNU/ Li nux
'e !er nel et l 0 OS
GNU/ Li nux
GNU/ Li nux
User l and et !er nel space
EJernel SpaceG
espace sensible
espace protg
contient le !ernel et ses modules
EUserlandG
espace utilisateur
espace libre
espace cloisonn
GNU/ Li nux
GNU/ Li nux
'es di st r i but i ons
Versions diffrentes de GNU/Linux
ayantes <#HE'*; semiPpayantes <8andriva* ou
gratuites <presque toutes*
our l0e&pert <Debian*; le dbutant <Jubuntu*; le
maniaque <'FS*; le patient <Centoo*; le
nostalgique <Qggdrasil; Slac!9are*
Oriente bureautique <Ubuntu*; appliance <Damn
Small*; serveur <(rusti&* ou gnraliste <SuSE;
Fedora*
#eligieuses <Cru&; Ubuntu CE; Ubuntu SE*;
paRennes <les autres*
lus de ,1L distributions sur le EmarchG
GNU/ Li nux
GNU/ Li nux
'es di st r i but i ons
oints communs S
!ernel
outils CDU
Di%%rences S
!ernel
outils CDU
syst-me de pac!ages
%ichiers de con%iguration
%ichiers de dmarrage
organisation et type du
%ilesystem
philosophie
canau& de distribution
mthode d0installation; de
con%iguration
outils
7777
Admi ni strati on Systme
Admi ni strati on Systme
D% i ni t i on
EFaire un ma&imum de scripts pour en %aire le moins possibleG
-% "[Link]
Le She
Le She
/ess su$ks less more than more%
#hat's why I use more less, and less more%%&
$nconnu
She
She
$ nt er >t S
$nter%ace utilisateur non graphique
terminau& te&te
acc-s distant
$nterprteur de scripts
traitement Tpar lotsT
automatisation
'ancement de tBches multiples
tBche combines <pipes*
Hob control
She
She
Oui mai s7 7 7
C0est un programme TnormalT
'e choi& est vaste
sh; sash; !sh; csh; tcsh; ash; bash; psh; %ish;
777
On peut e&cuter plusieurs shells en
parall-le <uni& est multitBche*
lusieurs utilisateurs peuvent e&cuter un
shell en m>me temps <uni& est multiP
utilisateurs*
She
She
(er mi nau&
xterm
vt100
console vga
She
She
:ut opsi e d0 un El ogi nG
She
She
Envi r onnement
Un shell donn s0e&cute dans un
environnement propre et clos contenant
des variables
Cet environnement est ?
est modi%iable
est transitoire
'0environnement initial
est d%ini au niveau syst-me
peut >tre modi%i par l0utilisateur
She
She
Envi r onnement
!i esystem
!i esystem
'e s ys t -me de % i chi er s < % i l es ys t em*
Organis hirarchiquement dans sa totalit
depuis la racine <EOG*
Sensible @ la casse <des caract-res*
Utilise 0O0 pour sparer les rpertoires dans
un chemin
eut contenir n0importe quel caract-re
(aille pratique d0un nom de %ichier illimite
as de notion Ed0e&tensionsG
DistroPdpendant malgr le EstandardG
!i esystem
!i esystem
'e s ys t -me de % i chi er s < % i l es ys t em*
!i esystem
!i esystem
'0 or gani sat i on du % i l esyst em < % s*
Une seule arborescence
!i esystem
!i esystem
"al ade dans l e E% sG
Se dplacer dans le %ilesystem
cd chemin <chemin relati%*
cd /chemin <chemin absolu*
Uoir le contenu du rpertoire
ls <contenu du rpertoire courant*
ls chemin <contenu de EcheminG*
Conna4tre le rpertoire courant
pwd <print 9or!ing directory*
!i esystem
!i esystem
"al ade dans l e E% sG
"#ertoires $ #art %
/ ? racine du %ilesystem
. ? rpertoire courant
.. ? rpertoire parent
~ ? rpertoire maison <Ehome dirG;
correspond @ VHO8E*
!i esystem
!i esystem
'i eu& t our i st i ques du E% sG
"#ertoire essenties au fon&tionnement
O ? racine
Obin; Osbin ? binaires syst-mes
Oetc ? con%iguration syst-me
Oboot ? !ernel et +
eme
tage du bootloader
!i esystem
!i esystem
'i eu& t our i st i ques du E% sG
Ousr ? binaires d0usage courant
Ohome ? rpertoires utilisateurs
Ovar ? donnes variables <sgbd; logs*
Oproc ? in%ormation syst-me temps r-l
Omnt; Omedia ? point montage temporaire
Osys ? bus syst-mes
Otmp ? rpertoire temporaire
lostN%ound ? obHets trouvs
She
She
V:(H
Uariable d0environnement
Contient une suite de chemins spars
par 0?0
'es e&cutables seront recherchs dans
ces chemins
She
She
V:(H
"#ertoire '(' dan)er *
risque d0e&cuter un troHan
n0importe qui peut crire dans Otmp <entre
autres* =
le shell perd du temps @ chaque 0cd0
She
She
Ent r eO Sor t i es
ar d%aut tout processus poss-de ?
) entre
+ sorties
Ces $OO sont distinctes pour chaque processus
our les programmes interacti%s <comme les
shells* ?
les entres proviennent du clavier
les sorties s0a%%ichent sur l0cran
She
She
Ent r eO Sor t i es
STDIN <entre standard* ? ce qui est envoy
vers le processus
STDOUT <sortie standard* ? ce qui est
envoy par le processus
STDERR <sortie erreur standard* ? les
erreurs renvoys par le processus
She
She
Ent r eO Sor t i es
Ces entrsOsorties standard sont en %ait des
noms symboliques; correspondant @ des
Edescripteurs de %ichiersG ?
STDIN <$Dput* ? descripteur de %ichier L
STDOUT <OU(put* ? descripteur de %ichier )
STDERR <E##or* ? descripteur de %ichier +
She
She
Ent r eO Sor t i es ? cat
cat ? copie STDIN <ou un %ichier* sur STDOUT
(crit les erreurs, s'il y a, sur STDERR)
user@host:~$ cat
azerty
azerty
qsdfg
qsdfg
user@host:~$ cat /etc/hosts
[Link] localhost
[Link] michel
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
user@host:~$ cat /etc/bidon
cat: /etc/bidon: Aucun fichier ou rpertoire de ce type
user@host:~$
She
She
#edi r ect i ons d0 EO S
'es EOS peuvent >tre rediriges de ou vers un %ichier
processus < fichier
S(D$D provient du %ichier <et non plus du clavier*
processus > fichier
S(DOU( est crit dans %ichier <et non plus sur le terminal*
processus 2> fichier
S(DE## est crit dans %ichier <et non plus sur le terminal*
processus > fichier1 2> fichier2
S(DOU( est crit dans %ichier) et S(DE## dans %ichier+
She
She
#edi r ect i ons d0 EO S
user@pluton:~$ cat < /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname > /dev/null
user@pluton:~$ cat < /etc/hostname > /dev/null
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/portnaouak
cat: /etc/portnaouak: Aucun fichier ou rpertoire de ce type
user@pluton:~$ cat /etc/portnaouak 2> /dev/null
user@pluton:~$ cat /etc/hostname /etc/portnaouak > [Link] 2> [Link]
user@pluton:~$ cat [Link]
pluton
user@pluton:~$ cat [Link]
cat: /etc/portnaouak: Aucun fichier ou rpertoire de ce type
She
She
#edi r ect i ons d0 EO S
user@pluton:~$ cat /etc/hostname
pluton
user@pluton:~$ cat /etc/hostname >> /tmp/test
user@pluton:~$ cat /tmp/test
pluton
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname > /tmp/test
user@pluton:~$ cat /tmp/test
pluton
user@pluton:~$ cat /etc/hostname >> /tmp/test
user@pluton:~$ cat /tmp/test
pluton
pluton
user@pluton:~$
She
She
Ent r es O s or t i es ? devi ces s pci au&
lusieurs TdevicesT <%ichiers dans Odev* ont une
vocation particuli-re ?
/dev/null
trou noir annihiliant tout ce qui lui est envoy
/dev/zero
envoie des Wros adPvitam
/dev/random /dev/urandom
%ournisseurs o%%iciels de haWard
/dev/full
dispositi% hypochondriaque ? se plaint touHours <d0>tre plein*
She
She
#edi r ect i ons d0 EO S ? t r avau&
)* Copier le contenu de OetcOpass9d dans le
%ichier OtmpOusers7t&t
+* Ecrire ElinusG @ la %in de users7t&t
,* Uider le %ichier users7t&t
.* #emplir users7t&t de TWrosT <utiliser le
dispositi% %ournisseur de Wros ? OdevOWero*
1* #ediriger l0erreur standard de 0ls Pl# O0 dans
OtmpOusers7t&t
2* Uider le %ichier users7t&t <d0une autre mani-re
qu0en ,*
She
She
i pes
'es EpipesG <pipelines* permettent
d0envoyer la sortie d0une commande
<S(DOU(* @ l0entre d0une autre <S(D$D* ?
She
She
i pes
On trouve tr-s souvent la commande grep au
milieu de pipelines
grep permet de n0a%%icher une ligne que si elle
contient une chaine de caract-res donne
Sa synta&e est ?
grep chane fichier
a%%iche les lignes de %ichier contenant
Tcha4neT
grep chane
a%%iche les lignes lues sur l0entre standard
<S(D$D* contenant Tcha4neT
She
She
i pes ? e&empl es < compl i qus*
user@pluton:~$ cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
user@pluton:~$ ls | grep test
[Link]
user@pluton:~$ ip link | grep UP
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,10000> mtu 1500 qdisc pfifo_fast qlen 100
user@pluton:~$ ip link | grep UP > [Link]
user@pluton:~$ cat [Link] | grep eth
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
user@pluton:~$ ip link | grep UP | grep eth
3: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
user@pluton:~$ history | awk '{ print $2 }' | sort | uniq -c | sort -nr -k1 | head -10
164 ls
74 cd
62 ssh
55 ping
55 man
53 make
51 ip
47 more
user@pluton:~$
$l n0y a pas de limitation
pratique au nombre de
TpipesT que l0on peut
encha4ner777
She
She
i pes
'es pipes et les redirections peuvent >tre
combines
She
She
i pes & #edi r ect i ons
user@pluton:~$ cat /etc/toto /etc/passwd | grep root 2> /dev/null
cat: /etc/toto: Aucun fichier ou rpertoire de ce type
root:x:0:0:root:/root:/bin/bash
user@pluton:~$ cat /etc/toto /etc/passwd root 2> /dev/null | grep root
root:x:0:0:root:/root:/bin/bash
user@pluton:~$
:ttention @ l0ordre des redirections et des pipelines
a | b 2> c
le rsultat de la commande a est pass @ b
les erreurs de b sont rediriges dans le %ichier c
a 2> c | b
le rsultat de la commande a est pass @ b
les erreurs de a sont rediriges dans le %ichier c
She
She
Compl t i on
ermet de complter une saisie
utilisateur dans le shell
:%%ect @ la touche EtabG
'a compltion a%%iche la plus grande
correspondance unique
S0applique au& commandes et @ leurs
arguments <selon con%iguration*
EtabPtabG a%%iche toutes les
correspondances possibles
She
She
Edi t eur de l i gne
l0diteur de ligne permet d0diter7777
777 la ligne =
raccourcis clavier identiques @ Emacs
CTRL k +
CTRL a +
: coupe de la position courante jusqu' la fin de la ligne
: dbut de ligne
CTRL e + : fin de ligne
CTRL y + : colle ce qui a t prcdemment coup
She
She
Hi st or i que
bash mmorise toutes les commandes dans un
d0historique
cet historique est enregistr dans un %ichier
lorsque le shell se termine
cet historique est lu depuis un %ichier au
dmarrage d0un shell
le nom du %ichier est d%ini dans VH$S(F$'E et la
taille de l0historique dans VH$S(F$'ES$XE
le rappel de commandes ?
par numro <=numro*
par nom <=debutnom*
apr-s recherche <ctrlPr*
She
She
Hi st or i que
user@host:~$ echo $HISTFILE
/home/user/.bash_history
user@host:~$ echo $HISTFILESIZE
1500
user@host:~$ history | tail -n 5
1429 history
1430 kill -9 18487
1431 echo $HISTFILE
1432 echo $HISTFILESIZE
1433 history | tail -n 5
user@host:~$ tail -n 5 $HISTFILE
ls
history
ls /ttest
history
kill -9 18487
user@host:~$ !1431
user@host:~$ echo $HISTFILE
/home/user/.bash_history
user@host:~$ !echo
echo $HISTFILE
/home/user/.bash_history
user@host:~$
She
She
Hi st or i que
user@host:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
...
postfix:x:111:118::/var/spool/postfix:/bin/false
user@host:~$ !cat | grep root
root:x:0:0:root:/root:/bin/bash
user@host:~$ bash
user@host:~$ history | tail -n 5
1476 ls
1427 history
1428 ls /ttest
1429 history
1430 kill -9 18487
user@host:~$
She
She
Hi st or i que
#emarques
si le shell " est ouvert alors que le shell : est
en cours; " ne verra pas les commandes de :
dans l0historique
si le shell " est %erm avant le shell :; les
commandes de " seront plus haut dans
l0historique
si le shell est tu; il ne pourra pas mettre
l0historique @ Hour
She
She
Hi st or i que
She
She
Cl obbi ng
ermet de nommer plusieurs %ichiers d0un seul
coup grBce @ des EHo!ersG <9ildcards*
? ? accepte un seul caract-re
* ? accepte n0importe quel caract-re L ou n %ois
[chars] ? denote une liste de caract-res accepte <liste;
suite alphabtique ou suite numrique*
[^chars] ou [!chars] ? dnote une classe de
caract-res re%use <liste; suite alphabtique ou suite
numrique*
{e1,e2,e3} ? remplace les arguments par les lments
de la liste
{e1,e2}{e3,e4} ? remplace les arguments par le
produit cartsien des deu& listes
She
She
Cl obbi ng
abc? ? accepte un %ichier de . lettres commenYant par
abc
abc* ? accepte un %ichier de , lettres ou plus
commenYant par abc
*abc* ? accepte un %ichier de , lettres ou plus contenant
abc
[ab]c ? accepte un %ichier de + lettres commenYant par
0a0 ou 0b0
[a-m]* ? accepte un %ichier commenYant par une lettre
comprise alphabtiquement entre 0a0 et 0m0 inclus
*[0-1][0-9] ? accepte un %ichier se terminant par un
nombre compris entre 0LL0 et 0)60
[13579]*[a-z] ? accepte un %ichier commenYant par un
nombre impair et se terminant par une minuscule
She
She
Cl obbi ng
[^13579]*[^a-z] ? accepte un %ichier commenYant par un
nombre pair et se terminant par une maHuscule
{a,b,c} ? accepte les %ichiers nomms 0a0; 0b0 ou 0c0
{a*,*b*,*c} ? accepte les %ichiers dont le nom commence
par 0a0; contient 0b0 ou se termine par 0c0
*{.doc,.odt,.rtf} ? accepte les %ichiers nomms 0Z7doc0;
0Z7odt0 ou 0Z7rt%0
{photo,image}{.jpg,.png} ? accepte les %ichiers nomms
0photo7Hpg0; 0photo7png0; 0image7Hpg0 ou 0image7png0
{jean,pierre}{,-jean} ? accepte les %ichiers dont le nom
est 0Hean0; 0HeanPHean0; 0pierre0 ou 0pierrePHean0
She
She
Cl obbi ng ? cl asses
alnum ? [aPW:PXLP6\
alpha ? [aPW:PX\
ascii ? caract-re ascii <777*
blank ? espace ou tabulation
cntrl ? caract-re de contr/le
digit ? [LP6\
graph ? caract-res
imprimables et visibles
lower ? [aPW\
print ? caract-re imprimable
Les classes sont des listes prdfinies de
caractres, utilisables entre [: et :] :
punct ? ponctuation
space ? espace; tabulation; 777
upper ? [:PX\
word ? [aPW:PXLP6]\
xdigit ? [aP%:PFLP6\
E&emple ?
[[:alnum:]] ? accepte un
caract-re alphanumrique
Uoir ? man 3 glob
She
She
Cl obbi ng ? l es l i mi t es
On ne peut pas matcher 0O0
On doit matcher e&plicitement le
caract-re 070
Ce ne sont pas des e&pressions rguli-res
On ne peut donc pas appliquer de
numration @ des classes
$l est par e&emple impossible de matcher tous
les noms de %ichiers se terminant par des
nombres
+ommandes de ,ase
+ommandes de ,ase
De l 0 ai de ? man
man commande
a%%iche le manuel de la commande commande
options
Pt ? produit une sortie postscript pour impression
e&emples
man -t ls | lpr
man man
+ommandes de ,ase
+ommandes de ,ase
De l 0 ai de ? man
)7 E&ecutable programs or shell commands
+7 System calls <%unctions provided by the !ernel*
,7 'ibrary calls <%unctions 9ithin program libraries*
.7 Special %iles <usually %ound in Odev*
17 File %ormats and conventions <e7g7 OetcOpass9d*
27 Cames
37 8iscellaneous <including macro pac!ages and conventions
57 System administration commands <usually only %or root*
67 Jernel routines [Don standard\
man divise la documentation en 6 sections ?
cela permet d0viter les ambiguRts ?
man glob A man 7 glob
+ommandes de ,ase
+ommandes de ,ase
:i de ? help, apropos, whatis
help commande
a%%iche le manuel d0une commande interne <builtin*
apropos sujet
a%%iche les pages de man correspondant au suHet
whatis commande
a%%iche une in%ormation succinte sur la commande
+ommandes de ,ase
+ommandes de ,ase
cd
cd argument
ErentreG dans le rpertoire argument
:pr-s un changement de rpertoire courant; l0ancien rpertoire courant est stoc!
dans 0P0; permettant d0y revenir avec 0cd P0
e&emples
cd
<equivaut @ 0cd ~' et 'cd $HOME')
cd ..
cd -
cd /tmp
cd tmp
+ommandes de ,ase
+ommandes de ,ase
VCD:(H
VCD:(H permet d0o%%rir des chemins
directement accessibles via EcdG
Comme pour V:(H; les chemins sont
concatns avec 0?0 ?
$ echo $CDPATH
/home/user:/var:/home/user/doc
$
+ommandes de ,ase
+ommandes de ,ase
ls
ls -a
'iste tous les %ichiers <incluant 7Z*
ls -l
:%%ichage long <droits; propritaire;
groupe; taille; date*
ls -R
'iste les %ichiers rcursivement
ls -t
:%%iche les plus rcents en premier
ls -S
:%%iche les plus gros en premier
ls -1
:%%iche le listing sur une colonne
Les options se combinent directement entre-elles
ex : ls -laRt
+ommandes de ,ase
+ommandes de ,ase
ls
ls option argument
liste les %ichiersOrpertoires correspondant @ argument ou dans le rpertoire argument
options
Pa ? a%%iche tous les %ichiers <y compris ceu& commencant par 070*
Pl ? listing tendu
P# ? rcursi%
PS ? tri par taille
Pt ? tri par date de modi%ication
P) ? a%%ichage sur une colone
e&emples
ls *.txt
ls /etc
ls /etc/host*
ls /etc/rc[1-3].d
ls /media/win/Program\ Files/
ls -laR ~
+ommandes de ,ase
+ommandes de ,ase
{mk,rm}dir
mkdir [-p] rpertoire1 rpertoire2 ...
cre les rpertoires rpertoire); rpertoire+; 777
l0option Pp per et destination <%ichier ou rpertoire*
options
Pp ? cre les rpertoires suprieurs si ncessaire
e&emples
mkdir $HOME/documents
mkdir test $HOME/images_iso
mkdir -p $HOME/documents/personnel/{photos,factures}
rmdir rpertoire1 rpertoire2
supprime les rpertoires rpertoire); rpertoire+; 777
ces rpertoires doivent >tre vides pour pouvoir >tre supprims <utiliser rm -rf sinon*
e&emples
rmdir $HOME/documents
rmdir test $HOME/images_iso
rmdir $HOME/documents/personnel/{photos,factures,}
+ommandes de ,ase
+ommandes de ,ase
cp & mv
cp source destination
copie la sour$e <%ichier ou rpertoire* vers la destination <%ichier ou rpertoire*
options
Pp ? prserve les droits
P# ? rcursi%
P% ? %orce l0crasement de la destination
e&emples
cp *.txt /tmp
cp [Link] [Link]
cp -Rf /home /var/backup
mv source destination
dplace la sour$e <%ichier ou rpertoire* vers la destination <%ichier ou rpertoire*
permet aussi de renommer un %ichier
e&emples
mv *.txt /tmp
mv [Link] [Link]
+ommandes de ,ase
+ommandes de ,ase
rm & touch
rm argument
Supprime le %ichier ou rpertoire argument
options
P# ? rcursi%
P% ? %orce la suppression
e&emples
rm -rf /
rm [Link]
touch fichier
Cre le %ichier s0il n0e&iste pas; ou met la date de modi%ication du %ichier @ l0heure
courant s0il e&iste
'a commande 0?M0 permet aussi de crer un %ichier
e&emples
touch [Link]
+ommandes de ,ase
+ommandes de ,ase
egrep
egrep options patron fichier
liste les %ichiersOrpertoires contenant une chaine correspondant @ patron7
si fi$hier n0est pas spci%i; grep travaille sur S(D$D
options
Pv ? inverse le comportement de egrep <n0a%%iche que les lignes qui ne
correspondent pas*
Pi ? insensible @ la casse
P# ? rcursi%
patrons d0e&pression rguli-res
si l'on utilise grep au lieu de egrep, il faut mettre un '0' de'ant les $ara$t)res 1, 2, 3, 4, 5, (, et )
. n'importe quel caractre
* le caractre prcdent 0 ou plusieurs fois
+ le caractre prcdent 1 fois au moins
? le caractre prcdent 0 ou 1 fois
{n} le caractre prcdent exactement n fois
{m,n} le caractre prcdent de m n fois
{n,} le caractre prcdent n fois ou plus
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre
^/$ le dbut/la fin de ligne
| sparateur pour spcifier de multiples expression
(ou logique)
+ommandes de ,ase
+ommandes de ,ase
egrep
8atcher une ligne commenYant par E%ooG ?
egrep "^foo.*"
8atcher une ligne commenYant par E%ooG ou contenant EbarG ?
egrep "^foo|bar"
8atcher une ligne commenYant par E%ooG ou commenYant par EbarG ?
egrep "^(foo|bar)"
8atcher une ligne commenYant par E%ooG et contenant EbarG ?
egrep "^foo.*bar"
8atcher une ligne commenYant par E%ooG et se terminant par EbarG ?
egrep "^foo.*bar$"
8atcher une ligne se terminant par un espace suivi d0un nombre de ) @ , chi%%res ?
egrep "[[:space:]]+[0-9]{1,3}$"
8atcher une ligne se terminant par un espace suivi d0un nombre de ) @ , chi%%res ?
egrep "[[:space:]]+[0-9]{1,3}$"
8atcher une ligne contenant le caract-re 0Z0 ?
egrep "*"
8atcher une ligne contenant le caract-re 0Z0 ou le caract-re 0S0 ?
egrep "*|?"
+ommandes de ,ase
+ommandes de ,ase
cat, less, tee et wc
cat fichier1 fichier2 ...
a%%iche le contenu de fi$hier6 fi$hier7 %%% sur la sortie standard
si cat est appell sans arguments; la source est l0entre standard
e&emple
cat /dev/urandom
less fichier1 fichier2 ...
comme cat; a%%iche le contenu de fi$hier6 fi$hier7 %%% sur la sortie standard mais
e%%ectue un arret @ chaque page
si less est appell sans arguments; la source est l0entre standard
e&emple
less /etc/password
tee fichier
duplique l0entre standard vers la sortie standard et dans un %ichier
e&emple
vmstat 1 | tee toto
wc option fichier
compte le nombre de lignes <Pl*; bytes <Pc*; mots <P9* 7777 dans fi$hier <ou sur S(D$D si
aucun %ichier n0est spci%i*
e&emple
wc -l /etc/passwd
+ommandes de ,ase
+ommandes de ,ase
tail et head
tail [-nX] [-f] fichier1 fichier2 ...
a%%iche les 8 derni-res lignes de fi$hier6 fi$hier7 %%% sur la sortie standard
si tail est appell sans arguments; la source est l0entre standard et le nombre de
lignes est )L
l0option P% permet de %aire un 0tail0 continu sur un %ichier qui croit
e&emple
tail -n5 /var/log/syslog
tail -f /var/log/syslog
head [-nX] fichier1 fichier2 ...
a%%iche les 8 derni-res lignes de %ichier) %ichier+ 777 sur la sortie standard
si tail est appell sans arguments; la source est l0entre standard
e&emple
head -n1 /etc/passwd
Une combinaison des deu& permet d0a%%icher la ni-me ligne d0un %ichier ?
head -n10 /etc/passwd | tail -n1 ? a%%iche la 6-me <)LP)* ligne de OetcOpass9d
head -n20 /etc/group | tail -n3 ? a%%iche les lignes )3 @ +L <+LP, PM +L* lignes de
OetcOgroup
+ommandes de ,ase
+ommandes de ,ase
Uer si ons 0 z0 & 0 bz0
zcat fichier1 fichier2 ...
bzcat fichier1 fichier2 ...
comme cat; mais sur des %ichiers gWippsObWipps
si zcat/bzcat est appell sans arguments; la source est l0entre standard
e&emples
zcat [Link]
bzcat myfile.bz2
zless fichier1 fichier2 ...
bzless fichier1 fichier2 ...
comme less; mais sur des %ichiers gWippsObWipps
si less est appell sans arguments; la source est l0entre standard
e&emples
bzless myfile.bz2
zgrep options patron fichier
duplique l0entre standard vers la sortie standard et dans un %ichier
e&emples
zgrep user [Link]
She
She
Commandes mul t i pl es
'e shell permet l0e&cution de commandes
successives en les sparant par 0^0 ?
ls > ~/[Link]; cd -; ls >> ~/[Link]
'e shell permet d0e&cuter une commande
uniquement si la prcdente a march ?
cat fichier > /dev/null && echo"le fichier existe"
grep -i "effacez moi" fichier && rm -f fichier
'e shell permet d0e&cuter une commande
uniquement si la prcdent a chou ?
cat fichier > /dev/null|| echo"le fichier n'existe pas"
grep -i "gardez moi" ~/[Link] || rm -f [Link]
She
She
K ob cont r ol
Fonctionnalit interne au shell
ermet de grer des tBches <processus*
multiples dans un m>me shell ?
suspension temporaire ? le processus est
arr>t Husqu0@ nouvel ordre
arr>t d%initi% ? le processus est termin
mise en arri-reOavant plan ? le processus
reYoit l0entre clavier
Un processus peut ignorer l0arr>t d%initi%;
mais pas la suspension
She
She
K ob cont r ol
Sus#endre <stopper* un processus ? _CtrlMz
Arr-ter <terminer* un processus ? _CtrlMc
<si le processus est @ l0avant plan*
Arr-ter <terminer* un processus ? kill %n
<si le processus est @ l0arri-re plan*
Voir la liste des processus du terminal <Hobs* ? jobs
0N0 est le Hob EcourantG <%% ou %+*
0P0 est le Hob EprcdentG <%-*
.ettre un Hob en arrire #an ? bg %n ou %n&
.ettre un Hob en a/ant #an ? fg %n ou %n
Lan&er un Hob en arrire #an ? commande &
She
She
K ob cont r ol
$ sleep 100
<ctrl-z>
[1]+ Stopped sleep 100
$ sleep 200 &
[2] 19858
$ jobs
[1]+ Stopped sleep 100
[2]- Running sleep 200 &
$ bg %1
[1]+ sleep 100
$ jobs
[1]- Running sleep 100
[2]+ Running sleep 200 &
$ kill %1
$ <return>
[1]- Complt sleep 100
$ fg
sleep 200 <ctrl-c>
$ jobs
$
Uti i sateurs
Uti i sateurs
#he $ause of the problem is9
:ad user karma%&
"OFH E&cuse Server
http?OO9997cs79isc7eduO`ballardObo%hObo%hserver7pl
Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/passwd
D%inis dans le %ichier /etc/passwd
root <U$D L* ?
propritaire de presque tous les %ichiers syst-me
poss-de tous les droits
les autres ?
utilisateurs Esyst-meG <U$D _ )LLL* ? daemon;
postfi,; sshd; 777
vrais utilisateurs <U$D a )LLL* ? toto; mar$el
8ots de passes d%inis dans le %ichier
/etc/shadow
Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/passwd
our chaque utilisateur; le %ichier /etc/passwd
contient sept champs ?
login
mot de passe <0&0 pour les shado9 pass9ords*
U$D <User $D*
C$D <Croup $D; groupe principal*
champ CECOS <nom complet; adresse; tlphones*
rpertoire personnel <Ehome dirG*
le shell e&cut au login
root:x:0:0:Linux Torvalds,0,123,456:/root:/bin/bash
Uti i sateurs
Uti i sateurs
Ut i l i sat eur s ? /etc/shadow
Seul root peut lireOmodi%ier ce %ichier
our chaque utilisateur; le %ichier /etc/shadow
contient le mot de passe de conne&ion et ses
param-tres de validit ?
login
mot de passe chi%%r
2 champs dcrivant la validit du compte
) champ rserv
$l n0est pas possible de se logguer directement si le
mot de passe est 0Z0 ou 0=0
mblanc:$1$QJ//btH...jL:1[Link]
Uti i sateurs
Uti i sateurs
/etc/passwd & /etc/shadow
$ cat /etc/passwd
root:x:0:0:Linus Torvads:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
gdm:x:106:111:Gnome Display Manager:/var/lib/gdm:/bin/false
acox:x:1000:1000:Alan Cox,Kernel St,0625081221,0474701221:/home/acox:/bin/bash
$
$ cat /etc/shadow
root:*:1[Link]
daemon:*:1[Link]
bin:*:1[Link]
sys:*:1[Link]
sync:*:1[Link]
games:*:1[Link]
man:*:1[Link]
lp:*:1[Link]
mail:*:1[Link]
gdm:!:1[Link]
acox:$1$QN//abU4$[Link].:1[Link]
Uti i sateurs
Uti i sateurs
Cr oupes ? /etc/group
Chaque ligne contient . champs ?
le nom du groupe
le mot de passe du groupe
l0$D du groupe <C$D*
la liste des membres du groupe; spars par des 0;0
Chaque utilisateur poss-de en gnral un groupe @ son
nom <Unique rivate Croup*; c0est son groupe primaire
Chaque utilisateur peut aussi appartenir @ n groupes
secondaires
'es groupes syst-mes permettent souvent de permettre
au& utilisateurs de manipuler des devices <dialout; %a&;
audio; 777*
Uti i sateurs
Uti i sateurs
Cr oupes ? /etc/group
$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:acox,ttso,ltorvalds
dialout:x:20:cupsys,acox,ttso,ltorvalds
fax:x:21:hugo,corentin
cdrom:x:24:haldaemon,acox,ttso,ltorvalds
floppy:x:25:haldaemon,acox,ttso,ltorvalds
tape:x:26:acox,ttso,ltorvalds
sudo:x:27:
audio:x:29:ttso,ltorvalds
www-data:x:33:
backup:x:34:
shadow:x:42:
utmp:x:43:
video:x:44:acox,ttso,ltorvalds
sasl:x:45:
plugdev:x:46:haldaemon,acox,ttso,ltorvalds
acox:x:1000:
ttso:x:1001:
ltorvalds:x:1002:
$
Uti i sateurs
Uti i sateurs
Cr at i on & gest i on
Outils Eposi&G ?
{user,group}{add,mod,del}
Outils EdistroPdependantG ?
{add,del}{user,group}
Outils divers ?
chsh; chfn
Edition directe des %ichiers
dconseille pour les crationsOsuppressions
acceptable pour les modi%ications
Uti i sateurs
Uti i sateurs
Uoi r
bui suisPHe S
whoami, id, groups, who needs sleep
bui est l@ S
who, users
bui tait l@ S
last, lastlog
bui %ait quoi S
w
bui e&iste S
lastlog, cat /etc/passwd
Uti i sateurs
Uti i sateurs
:ut hent i % i cat i on ? :8
'0authenti%ication est gre par :8 <luggable
:uthentication 8odules*
:8 permet de changer la %aYon dont on va identi%ier un
utilisateur <globalement; ou pour un service donn*
:8 g-re . aspects de l0authenti%ication ?
a&&ount ? validit du compte; e&piration du mot de passe; 777
authentifi&ation ? vri%ication de l0identit de l0utilisateur
#ass0ord ? modi%ication du mot de passe
session ? liste des tBches @ e%%ectuer avant la mise @ disposition
du service <ou apr-s sa terminaison*
:8 se con%igure dans
/etc/[Link] <con%iguration globale*
/etc/pam.d/* <con%igurations spci%iques; par modules; 777*
Uti i sateurs
Uti i sateurs
:ut hent i % i cat i on ? :8
CrBce @ :8; on peut authenti%ier un utilisateur de
multiples %aYons ?
par son identi%iantOmot de passe situs dans les %ichiers
passwd et group <mthode standard*
par son identi%iantOmot de passe stoc!s dans une base
de donnes <8ySb' par e&emple*
par un dispositi% biomtrique <empreintes digitales777*
par un dispositi% #F$DO"luetooth
par une cle% US"
777en rsum ? l0authenti%ication peut se %aire ?
en %onction de n0importe quel<s* lment<s*
service par service
<par e&emple "luetooth pour login graphique; loginOpass9ord pour la console*
Uti i sateurs
Uti i sateurs
Changer d0 i dent i t ? su et sudo
su <Es9itch userG* ?
permet d0e&ecuter une commande ou d0ouvrir
un shell Een tant queG
ncessite de taper le mot de passe de
l0utilisateur dsir <sau% si l0on est root*
sudo ?
permet d0e&ecuter une commande Een tant
queG
ncessite de taper ;<= mot de passe
les possibilits sont d%inies dans /etc/sudoers
1roi ts
1roi ts
1roi ts
1roi ts
Cnr al i t s
Chaque %ichier ou rpertoire poss-de ?
un propritaire
un groupe propritaire
Chaque %ichier ou rpertoire poss-de , listes de droits ?
les droits pour le propritaire
les droits pour le groupe
les droits pour les autres
Chaque liste donne les oprations possibles pour cet utilisateur ?
e&ture 2r3 %
fi$hier ? donne la possibilit de lire le &ontenu du %ichier
r>pertoire ? donne la possibilit de lire le contenu d0un rpertoire <donc la
liste des %ichiers qu0il contient*
&riture 203 ?
fi$hier ? permet d0crire dans ce %ichier
r>pertoire ? permet d0y crrOrenommerOsupprimer des %ichiers
ex&ution 2x3 %
%ichier ? permet d0e&cuter ce %ichier
rpertoire ? permet d0y 0rentrer0 <cd* et de voir son contenu
1roi ts
1roi ts
Fonct i onnement
4y#e 4y#e
b "loc! device
c Character device %ile
d #pertoire <Directory*
l 'ien symbolique
s Soc!et
p F$FO
- Fichier normal
1roit 1roit
r #ead
w crite
x E&ecute <%ichier*
x chdir <rpertoire*
s SU$D bit
Destinataire Destinataire
u +ser (propri>taire)
g ?roupe
o <thers (les autres, ni 'u' ni 'g')
1roi ts
1roi ts
chmod
&hmod ? permet de grer les droits et peut %onctionner
selon un mode littral ?
chmod destinataire(s) opration droits, ...
destinataire 9 u (user), g (group), o (other) ou a(all)
op>ration 9 2 (ajouter), @ (supprimer), A (mettre * la 'aleur)
droits 9 r (read),
w (write),
, (exe$ute ou $d)
1roi ts
1roi ts
chmod
chmod ? permet de grer les droits et peut %onctionner
selon un mode littral ?
chmod destinataire(s) opration droits, ...
destinataire 9 u (user), g (group), o (other) ou a(all)
op>ration 9 2 (ajouter), @ (supprimer), A (mettre * la 'aleur)
droits 9 r (read), w (write), , (exe$ute ou $d)
E&emples ?
chmod ugo+rwx fichier1 fichier2
chmod u+rw, g+r, o-rwx fichier3
chmod ug=rwx,o=rx fichier4
chmod a+rx,u+w repertoire
1roi ts
1roi ts
chmod
chmod ? peut aussi %onctionner en mode octal ?
trois groupes d0utilisateurs <u; g; o*
trois bits par groupe correspondant @ r; 9 et &
le mode s0e&prime alors en octal
1roi ts
1roi ts
chmod
chmod 755 <=> chmod u=rwx,g=rx,o=rx
1roi ts
1roi ts
chown
&ho0n ? permet de changer le propritaire ou le groupe
propritaire d0un %ichier
chown propritaire:groupe fichier ...
propri>taire ? nouveau propritaire du %ichier ou rpertoire
groupe ? nouveau groupe propritaire du %ichier ou
rpertoire
fi$hier %%% ? %ichiers ou rpertoires dont il %aut changer la
proprit
Si le groupe est omis; cho9n ne change que le propritaire
chown root /etc/passwd
Si propritaire est omis; cho9n ne change que le groupe
chown :cdrom /dev/cdrom
1roi ts
1roi ts
umask
'es droits d0un %ichier ou rpertoire @ sa cration
sont d%ini par umas!
: sa cration; un %ichier aura les permissions ?
555 6 2umas73
: sa cration; un rpertoire aura les permissions ?
888 6 2umas73
$ umask 0022
$ umask
0022
$ umask -S
u=rwx,g=rx,o=rx
$ touch fichier; mkdir repertoire; ls -ld fichier repertoire
-rw-r--r-- 1 tux zoo ... fichier
drwxr-xr-x 2 tux zoo ... repertoire
$
1roi ts
1roi ts
sui dO sgi d bi t s
suidOsgid bits <s* ? celui qui e&cute prend
temporairement l0identit du propritaire ou
groupe propritaire du %ichier
$ ls -l zzz
-rwxr-xr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$ chmod u+s zzz
$ ls -l zzz
-rwsr-xr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$ chmod g+s zzz
$ ls -l zzz
-rwsr-sr-x 1 ltorvalds ltorvalds 0 2007-01-16 23:02 zzz
$
tr-s utile mais tr-s dangereu&
1roi ts
1roi ts
st i c!y bi t
stic!y bit <t* ? seul le propritaire du %ichier ou
rpertoire peut renommer ou supprimer un
%ichier dans un rpertoire a%%lig du Estic!y
bitG
$ touch fichier
$ chmod a+rxw fichier
$ chmod +t .
$ sudo chown root . fichier
$ ls -la
total 12
drwxr-xr-t 2 root ltorvalds 4096 2007-01-17 00:17 .
drwxr-xr-x 3 ltorvalds ltorvalds 4096 2007-01-16 23:02 ..
-rwxrwxrwx 1 root ltorvalds 0 2007-01-17 00:17 fichier
$ rm -f fichier
rm: ne peut enlever `fichier': Permission non accorde
$
9arti ti ons :
9arti ti ons :
!i esystems
!i esystems
!i esystem
!i esystem
(ypes de % i l esyst ems
mini&
%s original
simple; encore utilis sur les disquettes
limit <2. 8b*
e&t+
dvelopp en )66,
limit <+ (b*
e&t,
e&t+ Hournalis
!i esystem
!i esystem
(ypes de % i l esyst ems
e&t.
supporte Husqu0au b <)L
)1
*
en cours d0intgration au !ernel
H%sO&%s
Hournaliss
respectivement $"8OSC$
#eiserFSO#eiser.
Hournalis
)L %ois plus per%ormant sur les petits %ichiers
probl-me de prennit S
!i esystem
!i esystem
(ypes de % i l esyst ems
iso622LOud%
respectivement CD#omsODUD#oms
%atOv%atOnt%s
%atOv%at bien grs
support nt%s plus dlicat <ro*
union%s
aggrgat de %ilesystems di%%rents
mlange possible entre roOr9
n%sOsmb%sOcoda
%ilesystems rseau
!i esystem
!i esystem
Fi l esyst ems H our nal i ss
Un %ilesystem Hournalis note toutes les
transactions @ venir avant de les e&cuter
En cas de crash; le syst-me peut savoir ce qui a
t %ait et ce qui ne l0a pas t
'a Hournalisation procure donc quelques
avantages ?
la dure d0un %sc! au boot ne dpend plus de la
taille du %ilesystem <on sait ou chercher*
intgrit des donnes accrue <et
paramtrables*
e&t,Oe&[Link]%sO&%sO#eiserFSO#eiser. sont Hournaliss
!i esystem
!i esystem
ar t i t i ons
les disques sont dcoups en partitions primaires
<ma& ? .* et tendues
les partitions sont reprsentes par des numros @
la %in du device reprsentant le disque
les devices dpendent de l0inter%ace du disque et
de sa position <e7g7 OdevOhda pour le )
er
disque $DE;
OdevOhdb pour le +
-me
; etc777*
!i esystem
!i esystem
Fi l esyst ems
chacune des partitions
contient un %ilesystem
<E%sG* qui sera mont dans
l0arborescence du syst-me
!i esystem
!i esystem
Devi ces et poi nt s de mont age
'es disques et les partitions sont des devices
Une partition contient la EracineG du %s
'es autres partitions sont EmontesG sur le %s
!i esystem
!i esystem
Cr at i on de par t i t i ons
sfdisk ? ligne de commande <C'$*
fdisk, cfdisk ? menus te&te <curses*
gparted ? inter%ace graphique <gnome*
!i esystem
!i esystem
Cr at i on de % i l esyst ems
mkfs.<put_you_favorite_filesystem_here> <device>
mini& ? %s linu& historique; encore utilis pour les disquettes
cram%s ? %s pour embarqu et initrd
e&td+;,e ? %ilesystem EstandardG linu& <e&t, Hournalis*
[Link]%sO&%s ? reiserFS; $"8; SC$ <Hounaliss*
msdosOv%at ? dos <%at* & 9indo9s <%atP,+*
user@host:~$ ls /sbin/mkfs.*
/sbin/[Link] /sbin/mkfs.ext3
/sbin/[Link] /sbin/mkfs.reiser4
/sbin/[Link] /sbin/mkfs.ext2
/sbin/[Link] /sbin/[Link]
/sbin/[Link] /sbin/[Link]
user@host:~$
!i esystem
!i esystem
#cr at i on ? i nt r oduct i on @ dd
dd est un cat sous stroRdes ?
il peut contr/ler le nombre d0octets crits
il peut convertir ces octets @ la vole
il peut lireOcrire des %ichiers; des devices; des
pipes; stdinOstdout777
il peut sauter une partie de l0entre ou de la sortie
dd if=/dev/zero of=mes_zeros count=1 bs=1024
bs ? taille des blocs en octets <ici )!o*
count ? nombre de blocs
la taille totale sera don$ (bsB$ount)
!i esystem
!i esystem
Cr at i on de % i l esyst ems
user@host:~/temp$ dd if=/dev/zero of=[Link] bs=1024 count=10240
10240+0 enregistrements lus
10240+0 enregistrements crits
10485760 octets (10 MB) copis, 0,08864 seconde, 118 MB/s
user@host:~/temp$ sudo losetup /dev/loop0 [Link]
user@host:~/temp$ sudo mkfs.ext2 /dev/loop0
mke2fs 1.39 (29-May-2006)
tiquette de systme de fichiers=
Type de systme d'exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
2560 inodes, 10240 blocs
512 blocs (5.00%) rserv pour le super utilisateur
Premier bloc de donnes=1
Nombre maximum de blocs du systme de fichiers=10485760
2 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
1280 inodes par groupe
Superblocs de secours stocks sur les blocs :
8193
criture des tables d'inodes : complt
criture des superblocs et de l'information de comptabilit du systme de fichiers : complt
Ce systme de fichiers sera automatiquement vrifi tous les 23 montages ou
tous les 180 jours, selon la premire ventualit. Utiliser tune2fs -c ou -i pour craser la valeur.
user@host:~/temp$ sudo losetup -d /dev/loop0
!i esystem
!i esystem
8ont age de par t i t i ons
du;emount ? dd;emontage des partitions sur le
%ilesystem
mount -t <fstype> <device> <mountpoint>
umount <device|mountpoint>
user@host:~/temp$ mkdir -p /mnt/mountpoint/
user@host:~/temp$ sudo mount -t ext2 -o loop [Link] /mnt/mountpoint/
user@host:~/temp$ df /mnt/mountpoint/
Sys. de fich. 1K-blocs Occup Disponible Capacit Mont sur
/home/leucos/temp/[Link]
9911 92 9307 1% /mnt/mountpoint
user@host:~/temp$ sudo umount /mnt/mountpoint/
!i esystem
!i esystem
ar t i t i ons ? /etc/fstab
'es partitions @ monter au boot sont dcrites dans /etc/fstab
LABEL=ROOTFS / ext3 defaults 1 1
UUID=ed2d8d56-5c08-4bd4-977e-673f7a1966b2 /usr ext3 defaults 0 0
/dev/hda1 /var reiserfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/cciss/c0d0p2 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
/dev/ida/c0d0p1 /home ext3 defaults 1 1
our chaque %ilesystem @ monter; OetcO%stab contient ?
la partition @ monter <OdevOhda)*
le moint de montage <Ovar*
le type de %ilesystem <reiser%s; e&t,; 777*
les options de montage <lecteur seule; propritaire; etc777*
un bool-n @ ) si le %s doit >tre sauvegard par dump
un numro d0ordre pour la vri%ication de %s au boot
!i esystem
!i esystem
ar t i t i ons ? /etc/fstab
LABEL=ROOTFS / ext3 defaults 1 1
UUID=ed2d8d56-5c08-4bd4-977e-673f7a1966b2 /usr ext3 defaults 0 0
/dev/hda1 /var reiserfs defaults 0 0
'es partitions @ monter sont dsignes par ?
un device <OdevOhda)*
un label <#OO(FS*; cr par e2label ou tune2fs -L
un UU$D; identi%iant unique <ed+[Link].P633eP23,%3a)622b+*;
cr par tune2fs -U
'es UU$D et labels permettent une indpendance par
rapport au device
findfs permet de retrouver un %s par label ou UU$D
!i esystem
!i esystem
Cest i on
d% ? donne l0occupation des %ilesystems monts
df -Th | grep "^/dev/"
hdparm ? tuning du disque <D8:; energie; 777*
sudo hdparm /dev/sda
tune+%s ? tuning du %ilesystem <ma&Pmount; UU$D*
sudo tune2fs -l /dev/sda2
%sc! ? vri%ication du %ilesystem <boot singlePuser*
fsck -a /dev/hda6
!i esystem
!i esystem
Fi l esyst ems spci au&
proc%s
mont dans Oproc
contient des in%ormations sur les processus
Wone %ourrePtout pour les variables e&portes
du !ernel
sys%s
mont dans Osys
contient des in%ormations sur les devices
prsents
!i esystem
!i esystem
Fi l esyst ems spci au& ? l e s9ap
'0espace de s9ap permet de dcharger
temporairement la mmoire physique <#:8*
'a taille empirique recommande est 7 B C"D
'orsqu0un process n0utilise pas une Wone de sa
mmoire <EpageG*; le !ernel peut dcider de la
mettre dans le s9ap <Es9ap outG*
'orsque la mmoire physique se %ait rare; les
Wones ncessaires au& process ?
doivent >tre stoc!es sur le s9ap <Es9ap
outG*
puis relues depuis le s9ap lorsque le process
s0e&cute <Es9ap inG*
!i esystem
!i esystem
i nodes & % i chi er s
Dans un %s uni&; chaque %ichier est
reprsent par un inode
'e %s contient une table d0association
Tnom de %ichierT TinodeT
'0inode contient toutes in%ormations
ncessaires concernant le %ichier ?
numro d0inode
permissions; propritaire
dates <cration; acc-s; modi%ication*
r%rences vers les blocs de donnes
!i esystem
!i esystem
i nodes & % i chi er s
!i esystem
!i esystem
'i ens symbol i ques ? har d l i n!s
Un hard lin! est
simplement une entre
de la D( qui pointe vers
un inode
$l peur y avoir plusieurs
hardPlin!s sur un inode
<et donc plusieurs
EnomsG pour un
m>me contenu*
'es inodes e&istent tant
qu0il y a au moins un
hardPlin! pointant
dessus
!i esystem
!i esystem
'i ens symbol i ques ? so% t l i n!s
'es so%t lin!s <symbolic lin!s O
symlin!s* pointent vers un
autre E%ichierG de la D(
'e lien symbolique n0e&iste que
par l0obHet qu0il pointe ? sans lui;
plus de %ichier
!i esystem
!i esystem
Har d l i n!s et so% t l i n!s ? choi si r
Utilisation des liens ?
hard lin!s ?
ne peuvent %onctionner que sur un m>me
%ilesystem <la tables des inodes est spci%ique au
%ilesystem*
per%ormances ma&imum <rien ne distingue un hardP
lin! d0un autre*
so%t lin!s
peuvent %onctionner entre les %ilesystems
impact sur les per%ormances <indirection*
un symlin! n0est rien sans son hardPlin! =
!i esystem
!i esystem
'i ens symbol i ques ? ln et stat
ln permet de crr des liens
ln original destination
cre un hard lin! <destination* pointant sur
l0inode de original
ln -s original destination
cre un lien symbolique destination pointant sur
original
stat permet de conna4tre toutes les in%os d0un
inode
stat fichier
a%%iche le contenu de l0inode point par fi$hier
!i esystem
!i esystem
'U8 ? 'ogi cal Uol ume 8anagement
Fournit un abstraction du matriel de stoc!age ?
on travaille sur des volumes logiques et non plus sur
des partitions
on travaille sur des volume groups au lieu de disques
on peut aHouter des partitions dans des volumes
groups
on peut agrandir les volumes logiques si necessaire
'U8 permet au %inal de construire des syst-mes de
%ichiers sur des devices ayant des tailles
modulables
'e syst-me de %ichier doit supporter le
redimensionnement pour en pro%iter =
!i esystem
!i esystem
'U8
!i esystem
!i esystem
#:$ D
Diveau& de #:$D <inux6;(5(<=*
>,od 2inear3 ? les disques sont concatnes
raid? 2stri##in)3 ? un morceau de donne sur chaque disque
raid@ 2mirrorin)3 ? un morceau de donne sur tous les disques
raid, ? la parit est stoc!e sur un disque
raidA ? la parit est distribue sur les disques de l0ensemble #:$D
raid5 ? la parit est distribue en double sur les disques de l0ensemble #:$D
raid LN) ? un ensemble raidL en miroir
raid@? 2@=?3 ? un ensemble raid) stripp
Cestion
/sbin/mdadm
/etc/mdadm/[Link]
!i esystem
!i esystem
Fi l esyst ems chi % % r s
CryptFS; EncFS; 'oopP:ES; losetup Pe; (rueCrypt;
dmPcrypt777 * l'aide =
'e choses se stabilisent; et deu& mhodes
mergent ?
4rue+ry#t
multiPplate%orme <'inu&Ocindo9sfO+LL&*
volumes chi%%rs indtectables et indcelables
Linux Unified Bey Setu# <lu!s*
Crypto:$ !ernel
multicle%s
volumes dtectables
Cdi teurs
Cdi teurs
"n infinite number of monkeys typing into ?=+ ema$s would ne'er
make a good program%&
'inus (orvalds
Cdi teurs
Cdi teurs
cat ; echo M
touHours disponible
per%ormances imbattables
user@host:~$ echo "chat "{"noir,",blanc} > [Link]
user@host:~$ cat [Link]
chat noir, chat blanc
user@host:~$ cat > [Link]
chat blanc, chat noir
user@host:~$ cat [Link]
chat blanc, chat noir
user@host:~$
pas vraiment un diteur777
Cdi teurs
Cdi teurs
vi
tr-s petit
<presque* touHours disponible
incontournable
cryptique
<pour les emacsiens*
apprendre avant d0en avoir besoin
incontournable
Cdi teurs
Cdi teurs
emacs
sait tout %aire777
777m>me le reste <e&tensible*
cryptique <pour les viPistes*
tr-s gros
<presque* Hamais disponible
apprendre avant d0en avoir besoin
Cdi teurs
Cdi teurs
7 7 7 et l es aut r es
C'$ ? aee; ed; e,; Hoe; Hed; nano; pico;7777
fcindo9 ? &ed; &9pe; a&e;777
Cnome ? gedit; gnotepadN; scite;
scribes777
JDE ? !ate; !edit; 777
Cdi teurs
Cdi teurs
Sur vi vr e @ vi
vi a deu& modes ?
mode commande ? ce que l0on tape
est considr comme une commande
et n0a%%iche rien
mode insertion ? ce que l0on tape
s0crit dans le %ichier
Du mode commande au mode insertion ? i; o; 777
Du mode insertion au mode commande ? _EscM
Cdi teurs
Cdi teurs
Commandes vi
/ : rechercher
n : occurence de recherche suivante
:w : ecrit le fichier sur le disque
:q : quitte vi
i : passer en mode insertion
: avancer de n lignes
n +
dd : effacer la ligne courante
o : insrer une ligne en dessous et passer en mode insertion
:q! : quitte vi malgr les avertissements
:x : ecrit le fichier sur le disque et quitte vi (quivaut :wq)
G : aller la ligne n. Si n est omis, va la fin du fichier
n +
dw : effacer le mot courant
D : effacer la fin de la ligne courante
She : &ommandes a/an&es
She : &ommandes a/an&es
9ersonna i ser e she
9ersonna i ser e she
:l i ases
'es alias permettent de crr une
commande personnalise
alias cd..="cd .."
alias la="ls -la"
alias cat="echo Impossible de lire "
alias sans arguments donne la liste des
alias actuellement d%inis
unalias permet de supprimer un alias
unalias cd..
9ersonna i ser e she
9ersonna i ser e she
`O 7 bashdr c; ]pr o% i l ee
'0environnement au dmarrage du shell est
paramtrable
~/.bashrc ? &cut @ chaque shell
~/.bash_profile ? e&cut @ chaque login shell
$l est pr%rable d0utiliser ~/.bashrc; les login
shell se %ont rares777
'a con%iguration par de%aut d0un nouvel
utilisateur est dans /etc/skel
'a con%iguration EsystemP9ideG est d%inie
dans /etc/[Link] et /etc/profile
enser @ personnaliser http_proxy
+ommandes a/an&es
+ommandes a/an&es
"oucl es ? for
for/in ? permet d0e&cuter une srie de
commandes sur chacun des lments d0une liste
for var in list; do things; done
E&emples ?
for i in 1 2 3
do echo i vaut $i
done
for i in mnt boot var; do echo Contenu de /$i; ls /$i; done
for i in b{in,oot}; do echo -n "/$i prend "; du -skh /$i; done
+ommandes a/an&es
+ommandes a/an&es
"oucl es ? bac!t i c!s & seq
seq ? permet de gnrer une liste sur S(DOU(
seq 1 9 a%%iche les chi%%res de de ) @ 6
seq 1 2 9 a%%iche les nombres impairs entre
) et 6
'es `` <bac!tic!s* e&cutent une commande et
se remplacent par la sortie de cette commande
rm `seq 1 3` ? supprime les %ichiers nomms )
+ et ,
+ommandes a/an&es
+ommandes a/an&es
"oucl es ? for, `` et seq ens embl e
for, `` et seq
for i in `seq 3`; do echo i vaut $i; done
for i in `seq 1 2 9`; do echo i vaut $i; done
for i in `seq 9 -2 1`; do echo i vaut $i; done
for i in `ls ~`; do echo Il y a $i dans $HOME; done
for i in ~/tmp/*; do echo -n Le fichier $i est de type" "
file -b $i
done
for i in ~/tmp/*; do echo -n Le fichier $i est de type" "
file -b "$i"
done
for i in ~/tmp/*; do echo -n Le fichier \'$i\' est de type" "
file -b "$i"
done
+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? cut
&ut ? permet d0e&traire une colonne dans un
%ichier @ champs dlimits
cut -f<i> -d<dlim> <file>
cut lit sur S(D$D si file est omis
le sparateur de champ est d>lim <blanc si omis*
e&trait le i
-me
champ sur chaque ligne et a%%iche sur S(DOU(
cut -f1 -d':' /etc/passwd a%%iche tous
les utilisateurs dclars dans OetcOpass9d
+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? sort
sort ? permet de trier les lignes lues dans un
%ichier <ventuellement @ champs dlimits*
sort -k<k> [-n] [-r] -t<dlim> <file>
sort lit sur S(D$D si file est omis
le sparateur de champ est d>lim <ou du blanc si d>lim est omis*
compare en %onction de la cle% @ la position k
avec l0option @r; l0ordre est renvers <WPMa; 6PML*
avec l0option Pn; la comparaison n0est plus alphabtique mais numrique
sort -k3 -nt':' /etc/passwd a%%iche
OetcOpass9d dans l0ordre numrique des U$D
+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? uniq
uniq ? permet de supprimer les lignes
conscutives doublon lues dans un %ichier
uniq [-c] <file>
sort lit sur S(D$D si file est omis
n0a%%iche qu0une ligne lorsque plusieurs lignes conscutives sont lues
avec l0option @$; uniq a%%iche le nombre d0occurences pour chaque ligne
echo -e "aaa\naaa\naaa\nbbb\nbbb" | uniq
n0a%%iche que 0aaa0 et 0bbb0
+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Tstream
editorT*
sed [-r] 's/motif1/motif2/' [fichier]
lit fi$hier ou S(D$D si aucun %ichier n0est spci%i
Pr permet d0utiliser des e&pressions rguli-res <presque* compatibles avec
egrep
remplace 0moti%)0 par 0moti%+0 <les moti%s sont des e&pressions rguli-res
compatibles avec grep*
g)777gn dans moti%+ sont des variables positionnelles reprsentant un match
dans moti%)
crit le rsultat sur S(DOU(
echo "chat noir" | sed -r 's/noir/blanc/'
a%%iche Tchat blancT
+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Estream
editorG*
le modi%icateur 0g0 permet d0attraper plusieurs %ois le moti% sur la
m>me ligne ?
echo "chat noir, trs noir" | sed -r 's/noir/blanc/'
a%%iche Echat blanc; tr-s noirG
echo "chat noir, trs noir" | sed -r 's/noir/blanc/g'
a%%iche Echat blanc; tr-s blancG
le modi%icateur 0i0 permet d0ignorer la casse lors des valuations ?
echo "chat NOIR, trs noir" | sed -r 's/noir/blanc/g'
a%%iche Echat DO$#; tr-s blancG
echo "chat NOIR, trs noir" | sed -r 's/noir/blanc/gi'
a%%iche Echat blanc; tr-s blancG
+ommandes a/an&es
+ommandes a/an&es
< 8al * t r ai t er l e t e&t e ? sed
sed ? remplacement de te&te <Estream
editorG*
g)777gn dans moti%+ sont des variables positionnelles
ces variables r%renceront les e&pression entre <* dans moti%)
elles ne sont initialises que s0il y a une concordance
echo -e "chat noir" | sed -r 's/chat (.*)/\1 chat/'
a%%iche Tnoir chatT
echo -e "abc" | sed -r 's/(.)(.)(.)/\3\2\1/'
a%%iche TcbaT
+ommandes a/an&es
+ommandes a/an&es
(r ai t er l e t e&t e ? sed
#appel sur les e&pressions rguli-res
. n'importe quel caractre
* le caractre prcdent 0 ou plusieurs fois
+ le caractre prcdent 1 fois au moins
? le caractre prcdent 0 ou 1 fois
{n} le caractre prcdent exactement n fois
{m,n} le caractre prcdent de m n fois
{n,} le caractre prcdent n fois ou plus
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre
^/$ le dbut/la fin de ligne
| sparateur pour spcifier
de multiples expressions
(ou logique)
Classes de caract-res
[[:alnum:]]: [a-zA-Z0-9]
[[:alpha:]]: [a-zA-Z]
[[:ascii:]]: caractre ascii (...)
[[:blank:]]: espace ou tabulation
[[:cntrl:]]: caractre de contrle
[[:digit:]]: [0-9]
[[:graph:]]: caractres imprimables
et visibles
[[:lower:]]: [a-z]
[[:print:]]: caractre imprimable
[[:punct:]]: ponctuation
[[:space:]]: espace, tabulation, ...
[[:upper:]]: [A-Z]
[[:word:]] : [a-zA-Z0-9_]
[[:xdigit:]] : [a-fA-F0-9]
+ommandes a/an&es
+ommandes a/an&es
#echer cher des % i chi er s ? find
find argument options
liste les %ichiersOrpertoires situs dans argument selon des crit-res d%inis dans
options7
options
Pname glob ? liste les %ichiers correspondant au shell glob glob
Ptype %OdOl ? ne liste respectivement que les %ichiers; rpertoires; liens
Pe&ec ? e&cute une commandercursi%
patrons de globs
. n'importe quel caractre
* le caractre prcdent 0 ou n fois
+ le caractre prcdent 1 ou n fois
? le caractre prcdent 0 ou 1 fois
[a-z] un caractre en minuscule
[a-zA-Z] une lettre
[0-9] un chiffre
e&emples
find ~/mes_docs -type f -name "*.doc"
find ~/mes_docs -type f -name "*facture*" -exec rm -f '{}' \;
find / -name "*log*" -type d
+ommandes a/an&es
+ommandes a/an&es
xargs; compani on de find
&args permet d0utiliser la sortie d0une
commande et de la passer en argument @ une
autre
cut -f6 -d':' /etc/passwd | xargs du -skh
'a commande &args est souvent utilise en
combinaison avec %ind ?
find arguments | xargs commande
C0est l0quivalent de 0%ind Pe&ec0; la per%ormance
en plus ?
%ind Pe&ec e&cute un process pour chaque rsultat
&args cumule la sortie pour ma&imiser le passage
d0arguments
+ommandes a/an&es
+ommandes a/an&es
#echer cher des % i chi er s ? locate
find e%%ectue une recherche sur le
%ilesystem en temps r-l ? long
our la recherche par nom de %ichier;
locate permet de %aire la m>me chose
locate utilise une base de donnes prP
gnre par updatedb
locate permet de rechercher des
e&pressions rguli-res <find ne peut
rechercher que des globs*
She s&ri #ti n)
She s&ri #ti n)
#alk is $heap%
;how me the $ode&
'inus (orvalds
She s&ri #ti n)
She s&ri #ti n)
"ases
Un shell script est un %ichier e&cutable
contenant une srie de commandes shell
Un script commence gnralement par ?
#!/bin/sh
$l doit >tre e&cutable; ou appell par 0sh
script0
ar convention; il se termine en gnral
par E7shG
'es lignes commencant par 0h0 sont des
commentaires
She s&ri #ti n)
She s&ri #ti n)
Uar i abl es
Dans un script; on peut utiliser des
variables locales ou issues de
l0environnement
echo $HOME
En dehors de l0a%%ectation; la variable doit
>tre prcde par 0V0
mavar=bonjour
echo $mavar
'es arguments passs aussi scripts sont
automatiquement a%%ects au& variables
V); V+; 777
She s&ri #ti n)
She s&ri #ti n)
Uar i abl es
'a variable VS donne la valeur de sortie
numrique de la derni-re commande
Un rsultat nul indique <en gnral =* que
la commande a russi
user@host:~$ touch f
user@host:~$ cat f
user@host:~$ echo $?
0
user@host:~$ rm f
user@host:~$ cat f
cat: f: Aucun fichier ou rpertoire de ce type
user@host:~$ echo $?
1
She s&ri #ti n)
She s&ri #ti n)
"r anchement s
'a construction i%OthenOelseO%i permet
d0e%%ectuer des branchements
conditionnels
en %onction de valeur de sortie de
commandes ?
echo -n [Link] est
if ping -c1 [Link]
then
echo joignable
else
echo injoignable
fi
She s&ri #ti n)
She s&ri #ti n)
"r anchement s
'a construction i%OthenOelseO%i permet d0e%%ectuer
des branchements conditionnels
en %onction de valeur de variables ?
if [ "$USER" = "root" ]
then
echo Bonjour maitre
else
echo Encore un utilisateur de base...
fi
'a construction [ \ est l0quivalent de la
commande 0test0
She s&ri #ti n)
She s&ri #ti n)
Compar ai sons
'a commande test <ou 0[\0* permet de
comparer des valeurs entrePelles
Comparaison numriques
-eq ? gal <equal*
-ne ? di%%rent <not equal*
-gt ? plus grand que <greater than*
-ge ? plus grand que ou gal @ <greater or equal*
-lt ? plus petit que <less than*
-le ? plus petit que ou gal @ <less o% equal*
Comparaison de cha4nes
i ? gal <cha4nes identiques*
=i ? di%%rent
< ? prc-de <tri alphabtique*
> ? suit <tri alphabtique*
She s&ri #ti n)
She s&ri #ti n)
:r i t hmt i que
'e shell o%%re trois possibilits pour
%ormuler des calculs ?
la commande expr expression ?
valeur=`expr 10 \* 20`
valeur=`expr $valeur + 2`
la construction $[ expression ]
valeur=$[10 * 20]
valeur=$[$valeur + 2]
la construction $(( expression ))
valeur=$((10*20))
valeur=$(($valeur+2))
She s&ri #ti n)
She s&ri #ti n)
"oucl es
9hile conditionOdoOdone permet de boucler tant
que la condition est vraie
num=1
while [ $num -le 5 ]; do
echo $num
num=$[$num + 1]
done
while ping -c1 $host > /dev/null 2>&1; do
echo $host est joignable
done
echo $host est Injoignable
Grer et su#er/i ser
Grer et su#er/i ser
es ressour&es
es ressour&es
Ee all know /inu, is greatFit does infinite loops in G se$onds&
'inus (orvalds
Grer es resssour&es
Grer es resssour&es
Cr er l e t emps
8ettre le syst-me @ l0heure
Depuis un serveur ntp ?
ntpdate [Link]
: la main ?
date --set="20061224 [Link]"
'ire l0heure
date +FORMAT
e& ? date +%Y%m%d" "%H:%M:%S
Chronomtrer
time commande
Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus
Chaque e&cutable; script; dmon;
appara4t comme un processus sur le
syst-me lorsqu0il est lanc
'orsqu0un processus est lanc; le !ernel
lui attribue un numro <$D*
'a commande Hobs ne permet de voir que
les processus e&cuts dans le terminal
courant
our visualiser les autres processus; il
%aut utiliser 0ps0
Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? ps
Uoir tous les processus
ps -edf
Uoir tous les processus; un peu plus de
dtail
ps awux
Uoir les processus de l0utilisateur courant
ps wux
PID : ID du process
PPID : ID du process parent
VSZ : consommation totale du process (RAM+SWAP)
RSS,RES : taille occup sur la mmoire physique (RAM)
TTY : terminal associ
STAT : tat (R=runnable, S=sleep, T=stopped, Z=zombie)
START : heure de lancement
TIME : cumul temps CPU consomm
M
n
m
o
n
i
q
u
e
s
Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? kill{,all}
kill permet d0envoyer in signal @ un processus
ce processus peut intercepter ce signal et agir en
consquence
kill n0est pas %orcment mal%aisant =
man kill donne la liste de signau& possibles
killall permet d0envoyer un signal @ des
processus par leur nom
un utilisateur ne peut signaler que ses processus
attention ? kill est souvent un builtPin <et non
/bin/kill*; donc help kill et non man kill
pour de l0aide =
Grer es ressour&es
Grer es ressour&es
Cr er l es pr ocessus ? kill{,all}
kill -signal pid
killall -signal nom
pid ? numro du process
signal ? numro ou nom du signal
<-1 envoie le signal @ tous les processus*
S(OOCOD( ? quivalents @ _CtrlMPW et %gObg pour les process du terminal
$D( <+* ? arr>t demand par l0utilisateur <gnralement via _CtrlPCM*
(E#8 <)1* ? !ill demande gentiment au process de se terminer
J$'' <6* ? le processus est tu sans sommation
HU <)* ? signal de dconne&ion du terminal; maintenant surtout utilis pour
demander une recon%iguration
US#) ? gnralement utilis pour demander une recon%iguration S
i
)
n
a
u
x
&
o
u
r
a
n
t
s
Grer es ressour&es
Grer es ressour&es
buot as di sque
'a suite d0outils 0quota0 permet de limiter
l0espace disque et le nombre d0inodes ?
par usager
par groupe
Ces limites sont soit ?
rigides ? d-s qu0elles sont atteintes;
impossible de crr d0autres %ichiers
souples ? lorsque les limites sont atteintes;
l0utilisateur peut encore consommer de
l0espace pendant une priode de EgrBceG
Grer es ressour&es
Grer es ressour&es
'i mi t es E:8G
:8 permet d0appliquer un certain nombre de
limites @ un utilisateur ou @ un groupe
Ces limites sont d%inies dans
/etc/security/[Link]
Elles sont appliques @ la catgorie EsessionG
nombre ma& de process
mmoire ma&imum
priorit des processus
777
voir ulimit -a
Su#er/i ser e systme
Su#er/i ser e systme
r obl -mes cl assi ques
Filesystem plein
6Lj des probl-mes spontans
rsolu %acilement en augmentant la capacit du %s
instaeD LV.
Filesystem corrumpu
pertes tr-s rares avec les %s Hournaliss
rsolu %acilement avec une politique de bac!up e%%icace
instaeD ,ontmia/dum#/ar7eia/(((
Crash disque
Un setup #:$D <so%t ou hard* permet de se prmunir %acilement
d0un crash disque
Un reboot sera peutP>tre ncessaire en %onction du bus du
disque
utiiseD e "AE1 2hard ou fourni #ar e 7erne3
Su#er/i ser e systme
Su#er/i ser e systme
r obl -mes cl assi ques
Surcharge syst-me
traquer les gourmands
optimiser le syst-me
utiiseD #s/to#//mstat/sar(((
Facteur humain
de loin; la plus %orte cause d0indisponibilit du syst-me
rsolu laborieusement par de la pratique et la destruction de
nombreu& syst-mes innocents <de production de pr%rence*
ex#rimenteDF &asseDF #aniqueDF re&ommen&eD
ne donneD #as de she $ n'im#orte qui
iratage
deu& catgories d0admins syst-me ? ceu& qui savent qu0ils ont t
pirats; et ceu& qui ne le savent pas
lutteW au quotidien pour >tre dans la )k catgorie
utiiseD i#ta,esF auditeD et faites auditer /os systmes
Grer es ressour&es
Grer es ressour&es
Fi chi er s ouver t s ? lsof
Uoir tous les %ichiers ouverts
lsof
Uoir tous les processus qui ouvrent fi$hier
lsof fichier
Uoir tous les processus qui ouvrent un fi$hier
sous r>pertoire
lsof rpertoire
Uoir tous les %ichiers ouverts par le processus
HII
lsof -pPID
:%%icher en boucle toutes les ; secondes
lsof -rS
Grer es ressour&es
Grer es ressour&es
Fi chi er s ouver t s ? lsof & fuser
Uoir tous les processus ayant une conne&ion
ouverte avec host
lsof -i @host
Uoir tous les process ayant une conne&ion tcp
sur le port port
lsof -i TCP:port
Uoir tous les processus ouvrant des %ichiers sur
un device ou point de montage
fuser -vm <device|mountpoint>
$dem; en e%%ectuant le EmnageG
fuser -kvm <device|mountpoint>
Su#er/i ser e systme
Su#er/i ser e systme
Cr er l 0 espace di sque
Uoir l0occupation de tous les %ilesystems
df -Th
Uoir l0occupation du %ilesystem contenant le
rpertoire rep
df -Th rep
Uoir l0occupation de tous les %ilesystems e&t,
df -ht ext3
Uoir l0occupation de chaque sous rpertoires de
rep
du -h rep
Uoir l0occupation du rpertoire rep
du -sh rep
Su#er/i ser e systme
Su#er/i ser e systme
Char ge syst -me
'e noyau g-re l0ordonancement de tous les
processus du syst-me
'es processus peuvent >tre dans plusieurs tats;
les plus courants tant ?
# <#unnable* ? le processus demande le processeur ou d0EOS
S <Sleep* ? le processus dort
( <s(opped* ? le processus a t arret <Hob control*
'a charge syst-me <Eload averageG* est le
nombre moyen de processus dans la runPqueue
<tat 0#0* pendant une priode donne
'a charge syst-me ne re%l-te pas %orcment la
charge processeur
Su#er/i ser e systme
Su#er/i ser e systme
Char ge syst -me
'a charge syst-me ne tient pas compte du
nombre de processeurs <ou de EcoresG*
uptime renvoie les load averages des ); 1 et )1
derni-res minutes
user@host:~$ uptime
[Link] up 101 days, 6 users, load average: 5.10, 3.23, 2.31
<uptime donne aussi l0heure <=* et le temps de
%onctionnement total du syst-me*
'a charge est touHours disponible dans
OprocOloadavg
user@host:~$ cat /proc/loadavg
5.10 3.23 2.31 4/40 20403
Su#er/i ser e systme
Su#er/i ser e systme
Char ge CU
vmstat permet de conna4tre la charge globale
des processeurs
user@host:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 17708 63868 119956 389016 0 0 60 51 211 605 7 1 91 1
mpstat permet de connatre la charge des
processeurs
user@host:~$ mpstat -P ALL
Linux 2.6.17-10-generic (host) 27.12.2006
[Link] CPU %user %nice %sys %iowait %irq %soft %idle intr/s
[Link] all 6,91 0,11 0,88 1,13 0,02 0,58 90,37 422,11
[Link] 0 4,84 0,10 1,11 1,97 0,05 1,15 90,78 422,11
[Link] 1 8,98 0,11 0,65 0,28 0,00 0,00 89,96 0,00
lorsqu0un nombre n est aHout en ligne de
commande; l0a%%ichage d%ile en continu toutes
les n secondes
Su#er/i ser e systme
Su#er/i ser e systme
'i nu& et l a mmoi r e
'e !ernel utilise la mmoire pour ?
son propre code
ses propres donnes
le code des applications &cuts
les donnes des applications e&cutes
le cache disque
'a mmoire en divise en EpagesG
'es pages les moins utilises sont mises en
mmoire virtuelle <dans le s9ap*; ce processus est
appel Es9apping outG ou Epaging outG
our de bonnes per%ormances; il %aut; si possible;
minimiser les oprations de page out
Su#er/i ser e systme
Su#er/i ser e systme
8moi r e
free permet de conna4tre l0tat de la mmoire
user@host:~$ free -m
total used free shared buffers cached
Mem: 1009 985 24 0 89 333
-/+ buffers/cache: 562 447
Swap: 996 17 978
8em dcrit la mmoire physique <#:8*
S9ap dcrit la mmoire s9ap
'a quantit de mmoire <physique* r-llement disponible
est sur la ligne 0PON bu%%ersOcache0 <ici ..3 8b*
vmstat donne @ peu pr-s les m>mes
in%ormations
user@host:~$ vmstat
procs -----------memory---------- ...
r b swpd free buff cache ...
0 0 17708 19284 92748 338840 ...
la m>moire r>)llement disponible 'aut free+buff+cache
Su#er/i ser e systme
Su#er/i ser e systme
8moi r e vi r t uel l e
vmstat et free permettent aussi de conna4tre
l0tat de la mmoire virtuelle
user@host:~$ vmstat
.... ---swap-- -----io---- -system-- ----cpu----
.... si so bi bo in cs us sy id wa
.... 20 590 59 47 211 578 9 2 88 1
user@host:~$ free
total used free shared buffers cached
Mem: 1034224 1016120 18104 0 43712 440104
-/+ buffers/cache: 532304 501920
Swap: 1020088 17720 1002368
swapon -s permet de conna4tre la liste des
partitions utilises pour le s9ap
user@host:~$ swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 1020088 17720 -1
Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
top ? montre la liste des processus tri
selon les crit-res choisis
4ri
M ? tri par mmoire
P ? tri par CU
N ? tri par $D
T ? tri par temps processeur
See&tion
1 ? a%%iche tous les processeurs
i ? a%%iche les tBches runnables
k ? tue un process
r ? renice
Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
saidar ? a%%iche un rsum tr-s complet
des di%%rents sousPsyst-mes
loadavg
CU <global*
processus
mmoire
rseau
disques
Su#er/i ser e systme
Su#er/i ser e systme
Cout eau& sui sses
statgrab ? permet d0obtenir des
statistiques E%ormattesG
user@host:~$ statgrab [Link] [Link]
[Link] = false
[Link] = true
user@host:~$ statgrab load.
load.min1 = 0.220000
load.min15 = 0.110000
load.min5 = 0.140000
user@host:~$ statgrab -u [Link] [Link]
414134272
63537152
user@host:~$ statgrab -u [Link] [Link] |
tr '\n' ' ' | awk '{ print ($1+$2)/(1024*1024)"M" }'
455.188M
Su#er/i ser e systme
Su#er/i ser e systme
:nal yse Eo% % P l i neG ? sar
sar permet de collecter des in%ormations sur
le syst-me @ intervalles rguliers
ces in%ormations sont stoc!es sur le syst-me
et peuvent >tre analyses @ posteriori
sar option -s debut -e fin
-b ? entres sorties
-B ? paging
-c ? cration de process
-d ? activit sur les devices bloc!
-n ? activit rseau
-P ? activit processeur
-q ? load average
-r ? utilisation de la mmoire
-R ? statistiques mmoire
-u ? utilisation du CU
-v ? utilisation des inodes
-y ? activit des tty
Su#er/i ser e systme
Su#er/i ser e systme
:nal yse Eo% % P l i neG ? sar
sar peut aussi monitorer en temps r-l l0activit d0un processus ?
sar -x PID 1 0
user@lazyserver:~$ sar -u -s [Link] -e [Link]
Linux 2.6.17-10-generic (lazyserver) 28.12.2006
[Link] CPU %user %nice %system %iowait %steal %idle
[Link] all 0,53 0,05 1,09 0,10 0,00 98,22
[Link] all 0,16 0,07 0,98 0,01 0,00 98,77
[Link] all 1,23 0,06 1,24 0,05 0,00 97,42
[Link] all 0,58 0,06 1,19 0,06 0,00 98,11
[Link] all 3,47 0,17 1,94 2,35 0,00 92,06
Moyenne: all 1,20 0,08 1,29 0,51 0,00 96,92
user@lazyserver:~$ sar -x 6702 1 0
Linux 2.6.17-10-generic (lazyserver) 28.01.2007
[Link] PID minflt/s majflt/s %user %system nswap/s CPU
[Link] 6702 2702,02 0,00 97,98 2,02 0,00 0
[Link] 6702 12310,89 0,00 91,09 7,92 0,00 0
[Link] 6702 7212,00 0,00 94,00 5,00 0,00 1
[Link] 6702 3215,00 0,00 97,00 2,00 0,00 0
[Link] 6702 10741,41 0,00 93,94 5,05 0,00 1
[Link] 6702 8178,43 0,00 93,14 4,90 0,00 1
Su#er/i ser e systme
Su#er/i ser e systme
#eboot er S
#aisons de rebooter un linu& ?
changement de !ernel
aHout de matriel
dmnagement
uptime
donne la dure de %onctionnement du syst-me
shutdown -h time
arr>te le syst-me <equivalent @ 0halt0*
shutdown -r time
reboote le syst-me <equivalent @ 0reboot0*
shutdown -c
annule un shutdo9n programm
time ? hh?mm; Nm ou no9
9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s
9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s
Les #a&7a)es 2#aqueta)es3
ont #our o,>e&tif %
de permettre une installation simple
777777777777777777777777 dsinstallation 77777777
777777777777777777777777 mise @ Hour 77777777
de grer des dpendances entre pac!ages
d0>tre recompilable %acilement
9a&7a)es
9a&7a)es
$ nst al l at i on de l ogi ci el s
Cn&ore des &ha#ees *
#8 sous Fedora; #edhat; 8andriva; SuSE777
DE" sous Debian; Ubuntu
tar7gW binaires sous Slac!9are
scripts N tar7gW sources sous Centoo
OpenJC; sorte d0espranto du pac!aging
777sans compter les pac!ages source
9a&7a)es
9a&7a)es
#edhat ac!age 8anager
Fonctionne sur les distributions bases #8
http?OOen79i!ipedia7orgO9i!iO'ist]o%]'inu&]distributionsh#8Pbased]%ree]distributions
Deu& commandes su%%isent pour grer les
paquetages sur les syst-mes bass #8
rpm ? permet de manipuler les %ichiers 7rpm et
de grer les paquetages installs
yum ? permet d0installer des paquetages depuis
di%%rentes sources
'es pac!ages #8 ont une e&tension de %ichier
Jar$hK%rpm <paquetages binaires* ou %sr$%rpm
<paquetages source*
'a commande rpm accepte des U#' <%tpOhttp*
9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? rpm
'es pac!ages sont manipuls avec la seule
commande rpm
Enstaer un pac!age
rpm -i [Link]
Su##rimer un pac!age
rpm -e package
.ettre $ >our un pac!age install
rpm -u [Link]
'es options -v et -h rendent l0a%%ichage plus
0humain07
9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? rpm
'a commande query <Pq* permet d0interroger un
pac!age ou la base de donnes des pac!ages
installs
Voir les in%ormations sur un pac!age
rpm -qip [Link] <query in%ormation*
rpm -qi package <pour un pac!age install*
Lister les %ichiers d0un pac!age
rpm -qlp [Link] <query ist*
rpm -ql package <pour un pac!age install*
"e&her&her dans quel pac!age se trouve fi$hier
rpm -qf fichier <query find*
9a&7a)es
9a&7a)es
#edhat ac!age 8anager ? yum
'a commande yum permet de rechercher ou
d0installer un paquetage directement depuis un
dp/t <$nternet; CDODUD; disque*
'a liste des dpots est d%inie dans /etc/yum*
Enstaer le paquetage nom
yum install nom
"e&her&her les paquetages contenant la cha4ne
nom
yum search nom
.ettre $ >our les in%ormations depuis les dp/ts
yum update
9a&7a)es
9a&7a)es
ac!ages Debi an
Fonctionne sur les distributions bases Debian
http?OOen79i!ipedia7orgO9i!iO'ist]o%]'inu&]distributionshDebianPbased]%ree]distributions
'es syst-mes debian poss-dent l0quivalent
<appro&imati%* du monde #8 pour grer les
paquetages ?
dpkg ? permet de manipuler les %ichiers 7deb et
de grer les paquetages installs
apt-get ? permet d0installer des paquetages
depuis di%%rentes sources
'es pac!ages Debian ont une e&tension de %ichier
%deb <paquetages binaires*
'a commande dpkg n0accepte pas d0U#'
9a&7a)es
9a&7a)es
ac!ages Debi an ? dpkg
'es %ichiers pac!ages sont manipuls avec la
commande dpkg
Enstaer ou mettre $ >our un pac!age
dpkg -i [Link]
Su##rimer un pac!age
dpkg -r package
Su##rimer un pac!age et sa con%iguration
dpkg -P package
"e&onfi)urer un pac!age
dpkg-reconfigure package
9a&7a)es
9a&7a)es
ac!ages Debi an ? dpkg
"e&her&her un %ichier dans les paquetages
installs
dpkg -S fichier
Lister les %ichiers a$tuellement installs pour un
paquetage7
dpkg -L paquetage
Lister les %ichiers installs par un paquetage7
dpkg -l paquetage
Donne 'tat du pa(uetage install
dpkg -l paquetage
9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-get
'a commande apt-get permet de
rechercher ou d0installer un paquetage
directement depuis un dp/t <$nternet;
CDODUD; disque*
apt-get est tr)s per%ormant par rapport @
yum
'a liste des dpots est d%inie dans
/etc/apt/{[Link],[Link].d/}
Enstaer le paquetage nom
apt-get install nom
9a&7a)es
9a&7a)es
ac!ages Debi an ? sour ces apt
les outils de la %amille apt utilisent des sour$es
pour obtenir les pac!ages et les mtadonnes
associes
ces sources; d%inies dans
/etc/apt/{[Link],[Link].d/}
ont le %ormat suivant
deb [Link] edgy main restricted
url du d>pLt distribution se$tions%%%
attention en aHoutant des sources ?
il est imprati% d0utiliser des sources de con%iance
il %aut vri%ier la signature des paquets <apt-key permet
de grer les identits*
9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-get
U#)rader tous les paquetages installs
apt-get upgrade
.ettre $ >our l0in%ormation depuis les
dpots
apt-get update
Su##rimer le paquetage
apt-get remove package
9asser @ une distribution plus rcente
apt-get dist-upgrade
Vrifier l0tat de la base de donnes
apt-get check
9a&7a)es
9a&7a)es
ac!ages Debi an ? apt-*
a#t est en %ait une %amille de commandes
ddies @ la getion de paquetages7
buelques membres de la %amille ?
apt-file ? rechercher un %ichier dans les
dpots apt
apt-cache ? rechercher un pac!age dont la
description ou le nom contient une e&pression
rguli-re
apt-file search `which bash`
apt-cache search tcpdump
apt-cache -n search '.*dump.*'
9a&7a)es
9a&7a)es
t ar ; dg; beWi p
tar permet de crr un %ichier contenant d0autres
%ichiers
$l est souvent utilis en combinaison avec gWip ou
bWip+
tar est par%ois utilis comme syst-me de gestion
de paquetage dans certaines distributions
<Slac!9are*
+rr une archive ar$hi'e%tar contenant fi$hiers
tar cvf [Link] fichiers
+rr une archive tar compresse gWip
ar$hi'e%tar%g. contenant fi$hiers
tar cvzf [Link] fichiers
9a&7a)es
9a&7a)es
t ar ; dg; beWi p
+rr une archive tar compresse bWip+
ar$hi'e%tar%b.7 contenant fi$hiers
tar cvjf [Link].bz2 fichiers
Lister le contenu de l0archive
tar tvf archive
tar tvzf [Link]
tar tvjf [Link].bz2
Cxtraire une archive tar
tar xvf archive
tar xvzf [Link]
tar xvjf [Link].bz2
9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces
$l est pr%rable d0installer des logiciels
avec le gestionnaire de paquetage de la
distribution
intgration plus %ine dans la distribution
gestion des dpendances et des con%lits
mises @ Hour automatiques
dsinstallation aise
(ous les logiciels ne sont cependant pas
disponible sous %orme de paquetages
E est don& #arfois n&essaire d'instaer
un o)i&ie $ #artir de ses sour&es
9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces
'es logiciels installs en dehors du
gestionnaire de pac!age doivent l0>tre
dans /usr/local/
'a plupart des logiciels sont construits
autour d0outils de dveloppement
communs ?
automakeMauto$onf ? d%inition des param-tres
de compilation en %onction de la plate%orme
make ? automatisation de la construction du
binaire @ partir des sources et installation
Des cas particuliers e&istent souvent^ il n0y
a pas de recette miracle777
9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces; v)
dcompacter les sources
con%igurer la compilation
compiler
installer
$ tar xvzf [Link]
$ cd soft-1.2
$ ./configure
....
$ make
...
$ make install
...
E&emple ? installer le logiciel 0so%tP)7+7tar7gW0
D>thode 6 9
: ce stade; si tout s0est bien pass; 0so%t0 doit >tre
install dans divers rpertoires sous OusrOlocalO
Cette mthode ne permet pas de dsinstallation
simple
9a&7a)es
9a&7a)es
$ nst al l er @ par t i r des sour ces; v+
dcompacter les sources
con%igurer la compilation
compiler
installer
$ tar xvzf [Link]
$ cd soft-1.2
$ ./configure
....
$ make
...
$ sudo checkinstall
...
E&emple ? installer le logiciel 0so%tP)7+7tar7gW0
D>thode 7 9
:pr-s quelques questions; chec!install va %aire un
paquet binaire pour votre distribution et l0installer
Cette mthode permet de trans%ormer un logiciel
source en paquet binaire automatiquement
Goot #ro&essF run e/e sF &ron
Goot #ro&essF run e/e sF &ron
Goot
Goot
'es 1 t apes
2@3 Goot hard0are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services
Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
2;3 +har)eur d'HS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services
Goot
Goot
"oot l oader s ? l i l o; gr ub & co7
'e travail du bootloader ? charger le !ernel
en mmoire
$l doit donc ?
savoir ou le trouver
savoir le charger
:pr-s des annes de domination de lilo;
Crub @ pris le dessus
D0autres bootloaders e&istent <notamment
syslinu&; loadlin; silo; milo; emile; etc777*
Goot
Goot
"oot l oader s ? gr ub
C#U" %onctionne en , temps ?
)
er
tage <1)+b d0assembleur* boot sur le 8"#
)71
-me
tage <`)L!b*; boot au dela du 8"#
+
-me
tage <`)LL!b*; charg depuis ObootOgrub
C#U" sait donc <grBce @ )71*; lire un %ichier sur
un %ilesystem e&t,Oreiser%sO&%sO77
$l lit aussi sa con%iguration directement sur le
%ilesystem ? pas besoin deErinstallerG C#U" @
chaque changement
'e +
-me
tage trouve le !ernel et lui passe la main
Goot
Goot
gr ub ? menu7 l st
/boot/[Link] est le %ichier de con%iguration de grub
il contient des scripts qui sont interprts par grub lors du boot
ces scripts peuvent >tre dits au boot si besoin
dmarrage en single user
changement du root %ilesystem
grubPinstall permet d0crire les tages ) et )71 sur le disque
sudo grub-install /dev/sda
la commande grub se prsente comme un shell^ par e&emple
les commandes quivalentes @ grubPinstall sont ?
[root@server ~]# grub
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
Goot
Goot
gr ub ? menu7 l st
default 0
title Ubuntu, kernel 2.6.17-10-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda6
initrd /boot/[Link]-2.6.17-10-386
quiet
boot
title Ubuntu, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
quiet
boot
title Windows 95/98/NT/2000
root (hd0,0)
makeactive
chainloader +1
Goot
Goot
gr ub ? edi t i on
Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
2I3 Goot 7erne
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services
Goot
Goot
Jer nel
'e !ernel se dcompresse lui m>me en #:8; et
s0e&cute; passant par di%%rentes phases ?
initialisation des sousPsyst-mes <mmoire; :C$; CU; 777*
initialisation des drivers <$DE; SCS$; 777*
chargement ramdis!
chargement modules du ramdis!
initialisation des <nouveau&* devices
montage des pseudoP%ilesystems <Oproc; Osys*
montage de la <vraie* partition O
e&cution d0init
Berne
Berne
Uer si ons
Versionnement du noyau
Uersions a7b7c[7d\
a7b ? branche principale
b impair ? branche de dveloppement
+7); +7,; +717; 777
b pair ? branche stable
+7L; +7+; +7.; +72; 777
c ? identi%iant unique dans la srie
d ? depuis +7275O+727)); sous versions
mineures intgrant des bug%i&es <stabilisation
de la version 0a7b7c0*
uname -r permet de conna4tre votre version du noyau
Berne
Berne
8odul es
'es modules sont des Emorceau&G de noyau
$ls peuvent >tre chargsOdchargs pendant
l0e&cution du !ernel
$ls sont compils @ partir de sources du !ernel777
777et peuvent aussi provenir de %ournisseurs
commerciau& <EdriversG*
Un dictionnaire <modules7dep* permet de savoir
quel module est ncessaire au %onctionnement
de tel autre module
On les trouve dans /lib/modules/`uname -r`/
Berne
Berne
8odul es
!ernel plus petit <barre des );..8o =*
Empreinte mmoire optimise
Dboguage plus %acile
8odules binaires provenant de tiers
lusieurs version peuvent EcohabiterG
:ttention @ la scurit =
777inter>t S
Berne
Berne
8odul es
Ensertion d0un module dans le !ernel
insmod /chemin/complet/vers/module
modprobe module
"etrait d0un module du !ernel
rmmod module
Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
2J3 init
passage au runlevel demand
e&cution squence des scripts
console
<1* Scripts SysU
dmarrage des services
"un e/e s
"un e/e s
init
init est le premier et le seul processus e&cut
directement par le !ernel <$D )*
il est le p-re de tous les autres
du point de vue d0init; le syst-me est dans des
tats discrets ? les runlevels
chaque runlevel d%init un dmarrage spci%ique
du syst-me
les runlevels possibles sont [LP2sS\
le comportement d0init en %onction du runlevel est
d%ini dans OetcOinittab
init a donc pour vocation principale de mettre le
syst-me en tat de marche
"un e/e s
"un e/e s
/etc/inittab
id:levels:action:process
id ? identi%icant unique
levels ? les runlevels pour lesquels cette action s0applique
action ? action ou dclencheur
process ? le<s* processus @ lancer
l[Link]wait:/etc/init.d/rc 0
l[Link]wait:/etc/init.d/rc 1
l[Link]wait:/etc/init.d/rc 2
l[Link]wait:/etc/init.d/rc 3
l[Link]wait:/etc/init.d/rc 4
l[Link]wait:/etc/init.d/rc 5
l[Link]wait:/etc/init.d/rc 6
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Goot
Goot
'es 1 t apes
<)* "oot hard9are
&cution du bios
param-tres dans la DU#:8
<+* Chargeur d0OS
e&cut depuis le 8"# par le "$OS
limit @ 1)+ bytes
<,* "oot !ernel
montage du root %s <O*
chargement des drivers
e&cution d0init
<.* init
passage au runlevel demand
e&cution squence des scripts
console
2A3 S&ri#ts SysV
dmarrage des services
SysV i ni t
SysV i ni t
St ar t up scr i pt s
init met le syst-me en route en invoquant <indirectement* des
scripts de dmarrage
Ces scripts permettent d0e&cuter des applications
persistantes <par e&emple; un serveur de messagerie*
appeles dmons
Ces scripts peuvent aussi e&cuter des actions ponctuelles
<montage des di%%rents syst-mes de %ichiers; dmarrage du
rseau; 777*
Ces scripts son situs dans des rpertoires /etc/rcN.d
<N ? runlevel*
Ces scripts sont en %ait des liens symboliques vers de vrais
scripts e&istant dans /etc/init.d
$ls sont e&cuts dans l0ordre de leur numros de squence
Ce type d0initialisation est appell ESysU style initG
<D7d7( ? initialisation * la sau$e syst)me $in(*
SysV i ni t
SysV i ni t
St ar t up scr i pt s
'es scripts situs dans les di%%rents rpertoires
correspondant au& runlevels suivent une
convention de nommage prcise ?
[SK][0-9][0-9]label
S/B ? le script sera appell avec le param-tre
start ou stop <7ill*7
N'est la responsabilit> du s$ript d'a$$epter et argument et de
le traiter $on'enablement%
??6<< ? nombre @ deu& chi%%res donnant le
numro de squence7
/es s$ripts sont e,>$ut>s du plus petit num>ro au plus grand%
/'uni$it> n'est pas re(uise%
a,e ? un label unique pour le script7
Norrespond en g>n>ral au nom entier du s$ript original
SysV i ni t
SysV i ni t
#unl evel s
? ? arr>t de la machine
S/s/@ ? single user
mode monoPutilisateur utilis pour la maintenance
pas de rseau; personne ne se loggue
; ? mode multiPutilisateur variant selon la distribution
mode par d%aut sous Ubuntu
mode multiPutilisateur sans rseau sous #edHat
I ? mode multiPutilisateur variant selon la distribution
mode te&te par de%aut sous #edhatOFedora
J ? inutilis sous la plupart des distributions
A ? mode multiPutilisateur
mode graphique par d%aut sous #edhatOFedora
5 ? reboot de la machine
" l'e,$eption des ni'eau, O et , $es $on'entions 'arient d'un uni, * l'autre
'a commande runlevel permet de conna4tre le runlevel prcdent et
le runlevel actuel
SysV i ni t
SysV i ni t
St ar t up scr i pt s
$ ls /etc/rc2.d/
K77ntp-server
S01apport
S05vbesave
S10acpid
[Link]
S10sysklogd
S11klogd
S13gdm
S14ppp
S16openvpn
S18hplip
S19cupsys
S20apmd
S20dbus
S20festival
S20hotkey-setup
S20laptop-mode
S20makedev
S20nbd-client
S20nbd-server
S20nvidia-kernel
S20postfix
S20powernowd
S20rsync
S20ssh
S20sysstat
S20tftpd-hpa
S20virtualbox
S20xinetd
S25bluetooth
S25mdadm
S89anacron
S89atd
S89cron
S90binfmt-support
S95preload
S98usplash
S99acpi-support
[Link]
S89anacron
S89atd
S89cron
S90binfmt-support
S95preload
S98usplash
S99acpi-support
[Link]
S99rmnologin
S99stop-readahead
SysV i ni t
SysV i ni t
Dmar r er un scr i pt 0 @ l a mai n0
'es applications qui doivent s0e&cuter au boot
installent un script dans /etc/init.d
$l est ensuite possible de contr/ler cette application
grBce @ ce script
1marrer l0application
/etc/init.d/application start
Sto##er l0application
/etc/init.d/application stop
"edmarrer l0applications
/etc/init.d/application restart
Demander @ l0application de re&har)er sa
con%iguration
/etc/init.d/application reload
"un e/e s
"un e/e s
Changer de r unl evel
:u boot; il est possible de demander un
dmarrage monoPutilisateur @ C#U"
En aHoutant 0S0 ou 0single0 @ la ligne
!ernel; le noyau va demander @ init de
dmarrer en mode 0single user0
"un e/e s
"un e/e s
Changer de r unl evel
En cours de %onctionnement; la commande telinit
demande @ init de modi%ier le runlevel
telinit level
shutdown -h now <ou halt* est l0quivalent de
telinit 0
shutdown -r now <ou reboot* est l0quivalent de
telinit 6
+ron
+ron
Fonct i onnement
cron permet de programmer des tBches
rcurrentes sur le syst-me
ces tBches sont listes dans des EcrontabsG
chaque utilisateur poss-de sa propre crontab
il y a une crontab syst-me
ces %ichiers sont scruts par le dmon
cronOcrondOanacron chaque minute <pas besoin
de redmarrer le dmon*
cron e&cute une tBche si son heure est venue
grBce @ cron; on peut automatiser la rotation
des logs; la mise @ Hour de bases de donnes;
les bac!ups; la gnration d0inde&777
+ron
+ron
Con% i gur at i on
&ron peut >tre con%igur de multiples mani-res
Met$M$rontab
crontab syst-me^ contient les programmations
globales du syst-me
M'arMspoolM$ronM$rontabsMP+;-C
contient la crontab de VUSE#
Met$M$ron%dM
contient des 0miniPcrontabs0 aHoutes par les
pac!ages @ l0installation
Met$M$ron%3hourly,daily,weekly,monthly4
contient des s&ri#ts e&cuts respectivement
toutes les heuresOHoursOsemainesOmois
+ron
+ron
For mat des cr ont abs
min heure jourmois mois joursemaine user command
(le $hamp user n'e,iste (ue dans la $rontab syst)me)
min ? @ quelle minute de l0heure [LP16\
heure ? @ quelle heure [LP+,\
jourmois ? quel Hour du mois [)P,)\
mois ? quel mois de l0anne [)P)+\
joursemaine ? quel Hour de la semaine [LP3\; Li3idimanche
user ? sous quel utilisateur
command ? commande @ e&cuter
our chaque champ chronologique; on peut avoir ?
P une valeur; l0e&cution aura lieu @ cette valeur
P une plage de valeurs :P"; l0e&cution aura lieu @ chaque valeur
P une combinaison de plages spare par des 0;0 <:P";C;DPE;777*
P une 0Z0; correspondant @ la plage enti-re
P un modi%icateur 0On0 pour une plage; provoquant l0e&cution
toutes les n %ois
+ron
+ron
For mat des cr ont abs
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other
# crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h jdm moi jds user command
17 * * * * root commande1
25 6 * * * root commande2
47 6 * * 7 root commande3
52 6 1 * * root commande4
* * * * * root commande5
* */2 * * * root commande6
0-29/3 * * * * root commande7
#
+ron
+ron
Edi t er sa cr ont ab
crontab permet d0diter un %ichier cron
crontab -u user -e
dition de la crontab de user
'0dition se %ait avec l0diteur spci%i dans
$VISUAL ou $EDITOR
'a variable $MAILTO dans une crontab permet
de spci%ier l0adresse @ laquelle envoyer le
rsultat des commandes
MAILTO= envoi au propritaire de la crontab
MAILTO=tux@[Link] envoi a tux@[Link]
MAILTO="" aucun envoi
At
At
E&ecut i on di % % r e uni que
at permet d0e&cuter une commande @ une heure
donne
contrairement @ cron; cette e&cution est unique
at lit les commandes @ e&cuter sur S(D$D
at renvoie par mail S(DOU( et S(DE## renvoy
par les commandes
atq et atrm permettent respectivement de voir la
liste des Hobs et d0en supprimer
echo "echo Anniversaire Tux" | at Aug 25
echo "echo fais chauffer l\'eau" | at teatime
- 5 minutes
echo "md5sum /bin/*" | at now + 1 hour
Lo)s
Lo)s
Sysl og
syso) permet d0uni%ier la gestion des logs sur
un ou plusieurs syst-mes
syslog ?
un dmon
un protocole permettant de transmettre des
logs via un rseau $
syslog permet d0envoyer les logs vers
la console
un tty
des %ichiers; des pipes
des usager loggus localement
un dmon syslog distant
Lo)s
Lo)s
Sysl og ? concept s
syso) repose sur + concepts %ondamentau&
facility
la 0%acility0 est la catgorie de l0v-nement prise
parmi ? auth, authpri', $ron, daemon, ftp, kern,
lpr, mail, news, syslog, user, uu$p, lo$alQO@RS
level
level est le niveau d0un vnement; pris parmi ?
debug, info, noti$e, warning, err, $rit, alert, emerg
chaque vnement envoy au dmon syslog
poss-de une fa$ility et un le'el
syslog va ensuite traiter ce message en %onction
de ces deu& param-tres et de sa con%iguration
Lo)s
Lo)s
Sysl og ? O et cO sysl og7 con%
#
# Exemples de logs
#
auth,authpriv.* /var/log/[Link]
*.*;auth,[Link] -/var/log/syslog
daemon.* -/var/log/[Link]
kern.* -/var/log/[Link]
uucp.* /var/log/[Link]
[Link] -/var/log/[Link]
[Link] -/var/log/[Link]
[Link] /var/log/[Link]
Lo)s
Lo)s
l ogr ot at e ? r ot at i on des l ogs
Sans intervention; les logs vont devenir de plus
en plus gros
probl-me; le %ilesystem n0est pas illimit =
logrotate est appell priodiquement par cron
et permet ?
d0archiver un log
de compresser un log
de redmarrer un dmon a%in qu0il rouvre
son %ichier de log
$l est tr-s con%igurable et peut %onctionner selon
une priode programmable et conserver autant
d0archives que ncessaire
"seau 4+9/ E 9
"seau 4+9/ E 9
"seau 4+9/ E 9
"seau 4+9/ E 9
(hor i e
'es rseau& sont
gnralement organiss en
Tpiles protocolairesT
chaque couche de la pile
o%%re un niveau d0abstraction
supplmentaire @ la couche
suprieure
chaque couche o%%re un
service supplmentaire par
rapport @ la couche
in%rieure
"seau 4+9/ E 9
"seau 4+9/ E 9
i l es
+ommuni&ation na/i)ateurser/eur 0e,
"seau 4+9/ E 9
"seau 4+9/ E 9
i l es
+ommuni&ation na/i)ateurser/eur 0e,
$'est aussi une $ommuni$ation entre $ha$une des $ou$hes
"seau 4+9/ E 9
"seau 4+9/ E 9
Encapsul at i on
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $
. octets <,+ bits*
L7L7L7L +117+117+117+11
soient +
,+
adresses possibles <`.7, milliards*
n bits pour lladresse rseau
<,+Pn* bits pour lladresse de llh/te
:dresses publiques attribues par ll$C:DD via
di%%rents #$#s <#$E; :#$D; :D$C; ':CD$C; :%riD$C*
lages d0adresses prives d0usage libre ?
)L7L7L7LO5 <)L7L7L7L )L7+117+117+11*
)3+7)27L7LO)+ <)3+7)27L7L )3+7,)7+117+11*
)6+7)257L7LO)2 <)6+7)257L7L )6+7)257+117+11*
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques
'e masque dtermine quelle est la proportion d0adresse
rseau et d0adresse d0h/te dans une adresse $
Ce concept n0a de sens que pour prendre des dcisions de
routage
'a premi-re adresse d0une plage dsigne le rseau luiPm>me^
la derni-re est l0adresse de broadcast <multiPdi%%usion*
_ )66.; les adresses taient spares par classes <Tclass%ull
addressingT* ?
classe : ? 5 bits adresse rseau; +. bits adresse h/te
classe " ? )2 bits adresse rseau; )2 bits adresse h/te
classe C ? +. bits adresse rseau; 5 bits adresse h/te
M )66.; les adresse $ se %ont rares ? les %ronti-res ne sont
plus %orcment alignes au& classes <5; )2; +. bits*
naissance de C$D# <Classless $nterDomain #outing*
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? masques
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? C$ D#
'es masques C$D# donnent directement le nombre
de bits rseau dans l0adresse
C$D# permet une <plus* grande souplesse dans
l0usage des adresses
C$D# permet d0agrger des blocs ensemble; a%in de
rduire la taille tables de routage
'0operation de division d0un bloc s0appelle le
TsubnettingT
'0operation d0aggregation de blocs s0appelle le
TsupernettingT
"seau 4+9/ E 9
"seau 4+9/ E 9
:dr essage $ ? C$ D#
"seau 4+9/ E 9
"seau 4+9/ E 9
or t s UDO (C
Cods sur )2 bits <LP211,1*
orts standards attribues au& protocoles
par ll$C:DD
as d0obligation d0utiliser le port standard
<sparation des couches de la pile*
Dumros de port M ,LLLL rarement
utiliss <masquerading; traceroute*
Sous 'inu& <Zni&*; les ports _ )L+. sont
rservs @ root
"seau 4+9/ E 9
"seau 4+9/ E 9
Dmul t i pl e&age
"seau 4+9/ E 9
"seau 4+9/ E 9
#out age des dat agr ammes $
our communiquer; les h/tes transmettent leur paquets
$ @ des TrouteursT
'es TrouteursT sont aussi des h/tes au sens (CO$; avec
la particularit
d0avoir plusieurs inter%aces
de %aire passer des paquets d0une inter%ace @ l0autre
"seau 4+9/ E 9
"seau 4+9/ E 9
#out age des dat agr ammes $
Un datagramme voyage dans plusieurs dimensions
entre les quipements
dans la pile $ de ces quipements
DcapsulationOencapsulation @ chaque noeud selon
TniveauT du Ts9itchT
'e routage $ s0e%%ectue par prise de dcision en
%onction de l0$ de destination
"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? Domai n Dame Syst em
"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on
our >tre %onctionnelle; la pile $ n0a besoin que
d0une chose ? une adresse <avec son masque*
our sortir du ':D; il %audra aussi une
passerelle <gate9ay; ne&tPhop*
our rsoudre les noms en adresse; il %aut un
serveur DDS
A&&sEnternet K adresse = next6ho# 2= 1NS3
"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ifconfig
ifconfig permet d0a%%ecter des adresses $
au& inter%aces de la machine
ifconfig e&iste sur tous les Uni& "SD
ifconfig [interface] [paramtres]
ifconfig
a%%iche les in%ormations sur toutes les inter%aces
ifconfig eth0
a%%iche les in%ormations sur l0inter%ace ethL
ifconfig eth0 [Link] netmask [Link]
a%%ecte l0adresse )6+7)257L7)O+. @ l0inter%ace ethL
"seau
"seau
4+9/ E 9
4+9/ E 9
(abl e de r out age ? route
route permet d0a%%ecter des adresses $ au&
inter%aces de la machine
route e&iste sur tous les Uni& "SD
route [add|del] rseau [gw passerelle]
route
a%%iche les in%ormations sur toutes les inter%aces
route add default gw [Link]
aHoute une route par d%aut via )6+7)257L7+1.
route del default
supprime la route par d%aut
"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip
$l %aut savoir qu0ifconfig et route e&istent777
777 mais il faut utiliser la commande ip
ip g-re ?
l0adressage $ <comme ifconfig*
la table de routage <comme route*
la table arp <comme arp*
les devices <comme ifconfig*
mais apporte aussi du nouveau ?
le policy routing
gestion des autres tables de routage
synta&e cohrente et concision
ip est la commande @ utiliser pour bn%icier
du routage avanc <iproute+* sous linu&
"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip link/addr
Uoir les addresses
ip addr show [dev device]
:%%ecter une adresse avec ip
ip addr add addresse/msk dev device
ip addr add addresse netmask msk dev device
(en $as d'appels multiples, ip ajoute des alias * l'interfa$e)
Supprimer une addresse
ip addr del addresse/msk dev device
ip addr del addresse netmask msk dev device
Supprimer toutes les addresses
ip addr flush dev device
8ettre en routeOcouper une l0inter%ace
ip link set device tat
(>tat 9 up pour mettre en mar$he, down pour $ouper)
"seau
"seau
4+9/ E 9
4+9/ E 9
:dr esse $ ? ip route
Uoir la table de routage principale
ip route show
:Houter une route
ip route add addresse/msk via passerelle
Supprimer une route
ip route del addresse/msk
Supprimer toutes les routes
ip route flush table main
Obtenir la route pour un subnet
ip route get addresse/msk
Couper le routage vers un subnet
ip route add blackhole addresse/msk
"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? l e r esol ver
'a rsolution d0adresses est l0a%%aire du r>sol'er
'e rsolver n0est pas un dmon mais une librairie
qui est utilise par les applications <pas de cache*
'e rsolver se con%igure via OetcOresolv7con%
Dans une con%iguration standard; le rsolver
consulte dans l0ordre ?
le %ichier OetcOhosts
le )
er
serveur de noms de OetcOresolv7con%
le +
-me
serveur de noms de OetcOresolv7con%
le ,
-me
serveur de noms de OetcOresolv7con%
par%ois DDS multicast <Ubuntu*
"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? O et cO r esol v7 con%
la directive 0nameserver0 permet de spci%ier les
adresses $ de serveurs de noms <, ma&imum*
nameserver a1.b1.c1.d1
nameserver a2.b2.c2.d2
le rsolver tentera une rsolution sur
a1.b1.c1.d1 puis sur a2.b2.c2.d2 si
in%ructueu&
la directive 0search0 permet d0aHouter
automatiquement un domaine @ un nom sans
point <070* ?
search [Link] [Link]
une rsolution de 0serveur0 se traduira par la
rsolution de serveur7domaine)7org puis
serveur7domaine+7org si in%ructueu&
"seau
"seau
4+9/ E 9
4+9/ E 9
DDS ? O et cO host s
/et&/hosts peut contenir des associations
$Ohostname; permettant ?
de d%inir des noms personnaliss <plus courts;
pour du test; 777*
de surcharger <recouvrir* des noms d0h/tes
e&istants <interception de l0acc-s @ un
hostname; utilisation d0un miroir plus proche*
de rsoudre plus rapidement des noms
%rquemment demands
de rsoudre des noms en l0absence ou
indisponibilt des DDS
a.b.c.d [Link] nom nombis ...
"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on vi a DHC
DHC se prsente sous %orme d0un dmon
Deu& variantes occupent le terrain ?
dhcpcd <Fedora*
dhclient <Debian*
Dmarrer dhcp sur l0inter%ace ?
dhcpcd eth0
dhclient eth0
Stopper le dmon dhcp ?
dhclient -r
dhcpcd -k
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? connect i vi t $
ping utilise le protocole $C8 pour vri%ier la
connectivit entre deu& h/tes
par d%aut; ping envoie un paquet par
seconde ind%iniment
l0option P% <flood* permet d0envoyer au moins
)LL 0echo request0 par seconde
fping est une variante qui permet de pinguer
plusieurs cibles @ la %ois
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? connect i vi t $
ping [-c nombre] [-f] [-s] adresse
nombre ? nombre de paquets @ envoyer
adresse ? adresse $ destinataire
-f ? %lood <au moins ) paquet toutes les )Lms*
-s ? taille du paquet en bytes
fping [-c nombre] [-g] adresse
nombre ? nombre de paquets @ envoyer
adresse ? adresse $ destinataire
-g ? teste un subnet complet
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
'orsqu0un routeur transmet un paquet d0une
inter%ace vers une autre; il dcrmente le
champ (('
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
Si apr-s la dcrmentation; le ((' est @ Wro; le
routeur dtruit le paquet avertit l0e&pditeur
'es outils de la %amille de traceroute
e&ploitent cette particularit du protocole
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x ([Link]) 0.188ms
1: a ([Link]) 22.844ms
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x ([Link]) 0.188ms
1: a ([Link]) 2.84ms
2: b ([Link]) 22.74ms
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x ([Link]) 0.188ms
1: a ([Link]) 2.84ms
2: b ([Link]) 22.74ms
3: c ([Link]) 28.41ms
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x ([Link]) 0.188ms
1: a ([Link]) 2.84ms
2: b ([Link]) 22.74ms
3: c ([Link]) 28.41ms
4: d ([Link]) 31.44ms
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? r out age
user@x:~$ tracepath y
1: x ([Link]) 0.188ms
1: a ([Link]) 2.84ms
2: b ([Link]) 22.74ms
3: c ([Link]) 28.41ms
4: d ([Link]) 31.44ms
5: y ([Link]) 79.319ms reached
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS
nslookup et dig sont en comptition sur les
diagnostics DDS
nslookup est tr-s largement disponible et
poss-de un mode interacti%
dig a une synta&e plus souple; et permet
d0e%%ectuer plusieurs requ-tes simultanes
'e deu& outils permettent d0obtenir des
rponses sur des enregistrements prcis ?
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS
nslookup en ligne de commande
nslookup [-type=type] nom
<le type est a par d%aut*
nslookup sans argument passe en mode
interacti%
server serveur ? change le serveur DDS
utilis
set type=type ? slectionne le type
d0enregistrement voulu
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i c ? DDS
dig [@server] type nom [type nom]
<le type est a par d%aut*
type ? le type d0enregistrement voulu
@server ? serveur de nom @ interroger
dig est asseW verbeu& ? grep -v '^;' s0impose
l0option P& permet d0e%%ecuter une rsolution
inverse
a <:ddress* ? adresse $ de l0h/te
mx <8ail efchanger* ? serveur de messagerie entrant pour le domaine
ns <Dame Server* ? serveur de nom pour le domaine
#tr <ointer* ? rsolution du nom depuis l0$
"seau
"seau
4+9/ E 9
4+9/ E 9
Di agnost i quer l es conne&i ons
netstat permet d0obtenir la liste de toutes les
Tsoc!etsT ouvertes
une soc!et est une descripteur de %ichier
utilis pour une communication entre
processus <$C*
les conne&ion (C ainsi que les soc!ets
d0coute UD sont lists par netstat
netstat -tunap
m m m m m]]liste les #rocess
m m m m]]liste m>me les soc!ets en coute<all*
m m m]]n0e%%ectue pas la rsolution de noms
m m]]liste les soc!ets UD
m]]liste les soc!ets 4C
"seau
"seau
4+9/ E 9
4+9/ E 9
$ nt er net t e&t e
'inu& dispose d0un nombre consquent d0outils
internet 0te&te0
H((OF( ? wget; curl; lynx; elinks; links
F( ? ftp, ncftp
S8( ? mail(x)
OO$8: ? pine; mutt
88S ? mimms
$#C ? irc
777 et talk; finger; whois; 777
"seau
"seau
4+9/ E 9
4+9/ E 9
$ nt er net t e&t e
Ces outils permettent une grande automatisation des
tBches lies au 9eb ?
obtention de donnes; ventuellement %iltres
elinks -dump [Link] | grep -i tux
suivi de modi%ications de pages 9eb <
elinks -dump [Link] | diff [Link] -
tlchargements avec reprise de trans%ert
wget -nd -c [Link]
crations de mirroirs
wget -m <ou mieu& ? rsync*
envoi de mails en ligne de commande <cat | mail*
elinks -dump [Link] || logger -[Link] "site web
hs" && echo "site web hs" | mail -s "etat du site" me@[Link]
E&emple ? Faire sa propre ne9sletter avec les derni-res nouvelles du !ernel S
Simple comme ?
lynx -dump [Link] | mail -s "News" me@[Link]
"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on au boot
'a con%iguration rseau n0est pas standard
chaque distribution poss-de une implmentation
particuli-re
comme touHours; vous >tes libre de dvelopper
vos propres scripts si l0e&istant n0est pas adapt
Con%iguration commune
OetcOresolv7con% ? con%iguration du DDS
OetcOhostname ? d%inition du nom d0h/te <par%ois
OetcOHOS(D:8E*
OetcOhosts ? %ichier de correspondance ipOh/te
'a lecture des scripts de boot SysU est le
meilleur moyen de dterminer le processus de
con%iguration
"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on Debi anO Ubunt u
OetcOnet9or!Ointer%aces ? con%iguration des inter%aces
auto eth0 eth1
iface eth0 inet dhcp
iface eth1 inet static
address [Link]
netmask [Link]
gateway [Link]
OetcOi%tab ? correspondance adresse macOdevice
eth0 mac [Link] arp 1
eth1 mac [Link] arp 1
"seau
"seau
4+9/ E 9
4+9/ E 9
Con% i gur at i on #edHat O Fedor a
Met$Msys$onfigMnetwork ? param-tres gnrau&; passerelle
par d%aut
NETWORKING=yes
HOSTNAME=[Link]
GATEWAY=[Link]
Met$Msys$onfigMnetwork@s$riptsMif$fg@JintK ? con%iguration
ip de l0inter%ace
DEVICE=eth0
BOOTPROTO=static
HWADDR=[Link]
NETMASK=[Link]
ONBOOT=yes
TYPE=Ethernet
Met$Msys$onfigMnetwork@s$riptsMroute@JintK ? routes
associes @ l0inter%ace
[Link]/24 via [Link]
"seau
"seau
4+9/ E 9
4+9/ E 9
Super P ser veur &i net d
&inetd <et tous les dmons type TinetdT* est un
Tsuper serveurT ?
il s0intercale entre le client et le serveur
il permet de recevoir les conne&ion pour des
serveurs (C et UD
une %ois la conne&ion reYue; il va dmarrer le
serveur et lui passer la conne&ion
une instance de &inetd permet de recevoir les
conne&ions destines @ plusieurs serveurs
conomie de ressources O latence accrue
&inetd o%%re en plus des %onctionnalits de
contr/le de ressources et de %iltrage
"seau
"seau
4+9/ E 9
4+9/ E 9
t cp9r apper s
8canisme de %iltrage pour l0acc-s au& serveurs
ermet de ragir au& tentatives %rauduleuses en
lanYant des scripts
'es serveurs doivent e&plicitement supporter ce
mcanisme <compils avec lib9rap*; ou >tre
lancs via &inetd <en utilisant tcpd*
con%iguration dans Met$Mhosts%allow <couples
serveurOclient accepts* et Met$Mhosts%deny
<couples serveurs reHets*
tombe en dsutude ? de moins en moins
de serveurs sont compils avec lib9rap et
&inetd o%%re plus de possibilits
"seau
"seau
4+9/ E 9
4+9/ E 9
i net d & t cp9r apper s
"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? % i l t r age avec i pt abl es
net%ilter est le sous ensemble du !ernel responsable du %iltrage
de paquets
%iltrage selon caractristiques niveau + <inter%ace; mac*
%iltrage selon les champs transport <ports; %lags tcp*
%iltrage selon des champs rseau <source; dest; tos; ttl;
protocole transport; 777*
%iltrage selon tau& d0arrive <rate limiting*
grBce @ net%ilter; il est possible de %aire subir les svices les
plus e&tr>mes au& paquets circulant dans le !ernel
rcriture d0une partie du paquet <adresses $; ports; ttl; 777*
reHet
destruction
noti%ication <log*
traitement en espace utilisateur
net%ilter est con%igur par des r-gles; consitues de chBines et
conditions et de cibles; et regroupes dans des tables
"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? t abl es
les tables sont des ensembles regroupant des
r-gles ayant une vocation particuli-re ?
man)e ? table dans laquelle les paquets sont
gnralement TtritursT ? modi%ication de ttl;
marquage pour l0application de boS; etc777
nat ? table dans laquelle les translations
d0adresse sont opres <nat source; nat
destination
fiter ? table ddie au %iltrage de paquet;
dcide du sort de chaque paquet transitant
dans le !ernel
la table %ilter est la table utilise par d%ault
lorsque la commande iptables est invoque
"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? cha4 nes
les cha4nes sont des lieu& TvirtuelsT traverss par les
paquets ?
EN9U4 ? cha4ne traverse par les paquets entrants et @
destination de la machine
HU49U4 ? cha4ne traverse par les paquets sortant;
mis par cette machine
!H"LA"1 ? cha4ne traverse par les paquets routs
par la machine <i7e7 entrant par une inter%ace et sortant
par un autre*
9"C"HU4ENG ? cha4ne traverse par les paquets reYus
du rseau
9HS4"HU4ENG ? cha4ne traverse par les paquets
mis sur le rseau apr-s la dcision de routage
$haines utilisateurs ? vous >tes libres de crr vos
propres chaines dans une table
"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? ci bl es
les cibles dterminent ce que l0on %ait du paquet
certaines cibles sont nonPterminales <returning targets* ?
le traitement du paquet continue apr-s cette cible
d0autres sont terminales <non@returning targets* ? le
traitement du paquet s0arr-te avec la derni-re cible
:CCE( ? accepte le paquet
D#O ? dtruire le paquet en silence
#EKEC( ? reHeter le paquet avec un message @
l0e&pditeur <code $C8 ou (C reset*
SD:( ? e%%ectue une translation d0adresse source
8$##O# ? retour @ l0envoyeur =
8:#J ? mettre une marque sur le paquet pour
utilisation ultrieure
'OC ? crire une ligne via syslog
bUEUE ? traitement du paquet en espace utilisateur
777 quelques autres diWaines777
"seau
"seau
4+9/ E 9
4+9/ E 9
net % i l t er ? pol i t i ques
chaque cha4ne a une politique par d%aut
cette politique sera applique si aucune r-gle
n0a attrap un paquet auparavant
les politiques possibles sont ?
:CCE( ? tout est accept
D#O ? tout est silencieusement reHet
il est trs %ortement conseill d0utiliser D#O
comme politique par d%aut
tout %ermer par d%aut
n0ouvrir que le ncessaire
"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? usage
Dterminer la politique par d%aut
iptables -P <CHAINE> <POLITIQUE>
iptables -P INPUT DROP
$nsrer une r-gle de %iltrage <dbut de cha4ne*
iptables -I <CHAINE> ..rgle.. -j <CIBLE>
:Houter une r-gle de %iltrage <en %in de cha4ne*
iptables -A <CHAINE> ..rgle.. -j <CIBLE>
Supprimer une r-gle
iptables -D <CHAINE> ..rgle.. -j <CIBLE>
'ister les r-gles
iptables -L -v
Uider les r-gles d0une cha4ne
iptables -F <CHAINE>
our les oprations sur d0autres tables que filter; il %aut
spci%ier 0-t table0
ip -t nat -A FORWARD ...
"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? s p c i % i c a t i o ns de r - gl e s
'a r-gle permet de tester des caractristiques du
paquet
'es options prennent la %orme ngative si elles
sont prcdes par 0 ! 0
buand ces options apparaissent dans une m>me
r-gle; un E( logique est e%%ectu
-s ? $ source
-d ? $ destination
-p ? protocol
-i ? inter%ace d0entre du paquet
-o ? inter%ace de sortie du paquet
-m MOD ? charge le module D<I
--sport ? port source <modules tcp; udp*
--dport ? port destination <modules tcp; udp*
777
"seau
"seau
4+9/ E 9
4+9/ E 9
iptables ? e&empl es
iptables -P INPUT DROP
politique par d%aut ? on Hette
iptables -A INPUT -p tcp -m tcp -s [Link]/24 --dport 22 -j
ACCEPT
on accepte les conne&ions tcp sur le port ++ <ssh* si elles viennent du
rseau )L7)7)7LO+.
iptables -A INPUT -p udp -m udp -s ! [Link] --dport 53 -j
ACCEPT
on accepte les conne&ions udp sur le port 1, <dns* si elles ne viennent
pas de la machine )L7)7)7+,
iptables -A INPUT -p tcp -m tcp -i lo --dport 3306 -j ACCEPT
on accepte les conne&ions tcp vers le port ,,L2 <mysql* uniquement si
elles arrivent de l0inter%ace loopbac! <cette machine*
iptables -A INPUT -p tcp -m tcp -i ! lo --dport 3306 -j LOG
on se plaint @ syslog si une conne&ion arrive sur notre serveur 8ySb' de
l0e&trieur
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --
limit 5/second --limit-burst 5 -j ACCEPT
on limite le traitement des echo requests icmp
iptables -A INPUT -m multiport -p tcp -s [Link] --dports
smtp,imap,pop3 -j ACCEPT
le module multiport permet de 0matcher0 plusieurs ports en une r-gle
"seau
"seau
4+9/ E 9
4+9/ E 9
ar am-t r es par t i cul i er s
:ctiver le routage ?
echo 1 > /proc/sys/net/ipv4/ip_forward
'ogguer les martiens
echo 1 > /proc/sys/net/ipv4/conf/default/log_martians
#e%user les icmp redirects
echo O > /proc/sys/net/ipv4/conf/default/accept_redirects
#eHeter les paquets spoo%s <avec des adresses locales*
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
(ous les param-tres rseau sont dcrits dans
/usr/src/linux/Documentation/networking/[Link]
sysctl peut aussi >tre utilis pour modi%ier ces valeurs
/sbin/sysctl -w net.ipv4.ip_forward=1
:u boot; le syst-me applique les valeurs spci%ies dans
/etc/[Link]
"seau
"seau
4+9/ E 9
4+9/ E 9
t el net & ssh
telnet permet de se connecter @ un port (C
distant
pour utiliser un shell <protocole telnet*
pour TparlerT un autre protocole <http; smtp; 777*
ssh chi%%re tout le tra%ic entre deu& h/tes; et
permet ?
d0ouvrir un shell sur une machine distante
de copier des %ichiers entre machines <scp*
de rediriger des ports
777
pour les conne&ions distantes; il %aut pr%rer
systmatiquement ssh @ telnet si possible
"seau
"seau
4+9/ E 9
4+9/ E 9
ssh ? aut hent i % i cat i on
ssh a une multitude de possibilits pour
authenti%ier les utilisateurs
il est gnralement plus sIr et plus simple
d0utiliser l0authentifi$ation * $lef publi(ue
"seau
"seau
4+9/ E 9
4+9/ E 9
Scur i t r seau l ment ai r e
Services ouverts
netstat permet de conna4tre la liste des services ouverts
ne dmarreD que es ser/i&es 2dmons3 n&essaires
Services ouverts sur des inter%aces
des services peuvent n0>tre utiles qu0au& serveurs locau&
<e&emple ? 8ySb' pour apache*
netstat permet de lister les inter%aces sur lesquelles unservice
est disponible <un port est ouvert*
n'ou/reD es ser/i&es que sur es interfa&es adquates
FiltreW touHours
il est touHours important de %iltrer; m>me si un service n0est pas
ouvert sur une inter%ace
%iltrer peut permettre de limiter les dnis de service
le %iltrage est un %ilet de scurit en cas d0erreur de con%iguration
utiiseD i#ta,esF et utiiseD des #oitiques 1"H9 #ar
dfaut
E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
f9i ndo9; fFr ee52; f7 or g
f9indo9 est l0in%rastructure de base des inter%aces
graphiques sous uni& depuis )65.
'0inter%ace graphique est compl-tement optionnelle;
et par%aitement inutile sur des serveurs
f9indo9 est un protocole client serveur ?
l0a%%ichage d0une application est indpendant de
sont e&cution
il peut >tre dport @ travers un rseau
il peut aussi >tre transport via SSH
:uHourd0hui l0implmentation la plus rpandue sous
linu& est &7org; issue de f%ree52
E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
Cnome; JDE; f% ce; e; 7 7 7
'es inter%aces graphiques sont implmentes
par dessus le serveur f <&7org*
Cestionnaire de %en>tres <le Tloo!T* ? g-rent
l0aspect purement mcanique ? iconi%ication;
bordures; dcorations; etc777
blac!bo&; %v9m; 9indo98a!er; %lu&bo&;
t9m
Cestionnaires de bureau <le T%eelT* ? g-rent la
session; les associations mime; les bus entre
applications; les dialogues standard; les
icones; 777
Cnome; JDE; f%ce;
E nterf a&es )ra#hi ques
E nterf a&es )ra#hi ques
VD$ S':Q
'a variable d0environnement VD$S':Q permet d%inir le
serveur f utilis pour l0a%%ichage
Des terminau& spcialiss <terminau& f* sans disques
durs ni CU utilisent e&clusivement cette %onctionnalit
f9indo9 livre par d%aut la prise en main @ distance
depuis )65.777
Muesti ons N
Muesti ons N
+nless you ha'e a hundred unanswered (uestions in your mind
you ha'en't read enough%%%
djb
#!/bin/sh
read Questions
test $Questions || exit
Ctudes de &as
Ctudes de &as
Ctudes de &as
Ctudes de &as
: l a car t e
Ur)en&es Ur)en&es
Hut of s0a# s#a&e Hut of s0a# s#a&e
raHouter du s9ap @ la vole par un s9ap%ile
raHouter du s9ap @ la vole depuis une partition
4oo mu&h #ro&esses 4oo mu&h #ro&esses
dterminer les causes d0une surcharge en processus
remdier au probl-me
Hut of memory Hut of memory
determiner la cause du manque de mmoire
remdier au probl-me
!iesystem fu !iesystem fu
trouver d0ou vient le probl-me
mettre en place des quotas pour remdier au probl-me
1isque HS 1isque HS
merci le #:$D)
changer le disque d%aillant
tester le disque d%aillant
Au /oeurF mon init * Au /oeurF mon init *
init @ disparu ? booter le syst-me et rparer le probl-me
init @ disparu ? booter sur un CD live et rparer le probl-me
trouver; si possible; le coupable
9irates * 9irates *
vri%ier l0intgrit d0un syst-me suspect
trouver la %aille
quels enseignements S
+onfi)uration +onfi)uration
!itra)e ni/eau 8
compiler un !ernel et iptables et mettre en place du %iltrage
niveau 3
xinetd xinetd
mettre en place &inetd
ouvrir les services echo et chargen
!itra)e !itra)e
%iltrer tous les services
ouvrir chargen
1#oiement de ssh 1#oiement de ssh
dterminer les causes d0une surcharge en processus
remdier au probl-me
Loo#in) ,a&7 Loo#in) ,a&7
mettre en place un %ilesystem chi%%r en loopbac!
mettre en place un %ilesystem sur #:$D en loopbac!
mettre en place un %ilesystem 'U8+ en loopbac!
mettre en place une combinaison <deu& ou trois ensemble*
L'attaque des &ones L'attaque des &ones
cloner un syst-me avec dd
Syn&hroniser des r#ertoires distants Syn&hroniser des r#ertoires distants
scp scp
tar & ssh tar & ssh
rsync rsync
fuser % tout monter fuser % tout monter
compilation de curl%tps compilation de curl%tps
monter un %ilesystem depuis un serveur %tp monter un %ilesystem depuis un serveur %tp
%aire unscript type SysU pour le montage %aire unscript type SysU pour le montage
"f ren&es
"f ren&es
"f ren&e
"f ren&e
#accour ci s bash
ESC d +
CTRL +
: efface le mot droite du curseur
: mot prcdent
CTRL + : mot suivant
CTRL k + : coupe de la position courante jusqu' la fin de la ligne
CTRL y + : colle ce qui a t prcdemment coup
CTRL d + : efface le caractre droite du curseur
ESC t + : transpose le mot prcdent avec le mot suivant
CTRL t + : transpose le caractre sous le curseur avec le caractre suivant
CTRL r + : recherche dans l'historique
CTRL e + : dbut de ligne
CTRL a + : dbut de ligne
"f ren&e
"f ren&e
#accour ci s l ess
/ : rechercher
n : occurence de recherche suivante
> : va la fin du fichier
v : edite le fichier en cours dans $VISUAL ou $EDITOR
< : va au dbut du fichier
ESPACE : avancer d'une page
n b + : reculer de n lignes
b : reculer d'une page
: avancer d'une ligne
: avancer de n lignes
n +
q : quitter
! : excute la commande cmd dans un shell +
cmd
"f ren&e
"f ren&e
Compl t i on et hi st or i que bash
!
$HISTFILESIZE : taille du fichier historique (par dfaut 500)
TAB
r
+ : affiche une liste des compltion possibles
: commande suivante
: commande prcdente
! nombre : excute la commande numro nombre
texte : excute la dernire commande dbutant par texte
$HISTFILE : fichier historique (par dfaut ~/.bash_history)
CTRL
TAB
+
TAB
texte : recherche texte dans l'historique
: complte la saisie en cours
Compltion
Compltion
Historique
Historique
"f ren&e
"f ren&e
K ob cont r ol
z
fg [%n] : met le dernier job [ou job n] en avant plan
CTRL + : suspension de la tche en cours
bg [%n] : met le dernier job [ou job n] en arrire plan
c CTRL + : termine le processus l'avant plan
kill [-SIGX] %n : envoie le signal SIGTERM (ou SIGX) au job n
jobs : affiche la liste des jobs en cours
commande & : excute commande directement en arrire plan
nohup commande & : excute commande directement en arrire plan et
dtache le terminal
+on/enti ons ty#o)ra#hi ques
+on/enti ons ty#o)ra#hi ques
noms de commande ou de fichiers en courrier-10
saisies utilisateur en courrier-10 gras
paramtres en italique
S(D$D en bleu <parties concernant les descripteurs de %ichiers*
S(DOU( en vert <parties concernant les descripteurs de %ichiers*
S(DE## en rouge <parties concernant les descripteurs de
%ichiers*
console dans une fentre grise en courrier-10
8anipulations
#accourcis clavier
+rdi tsF /ersi onF i &en&e
+rdi tsF /ersi onF i &en&e
+rdits
4ux n 'arry E9ing; http?OO9997isc7tamu7eduO`le9ingOlinu&O
GNU Head n Etienne Suvasa; http?OO9997gnu7orgOgraphicsOagnuhead7html
E&ones ? (ango roHect <http?OOtango7%reedes!top7org*
Ga,y 9in)ouin ? http?OO99979eb9eaver7nuOclipart
Systmes <p),* ?
:C8E Systems http?OO99979eb9eaver7nuOclipart
D:S: :mes #esearch Center
Cray $nc7
$"8 Corporation
+rdi tsF /ersi onF i &en&e
+rdi tsF /ersi onF i &en&e
Version : historique
Uersion +LL3L.L.]L)
20070404_01 MB : cration p245, mise jour de graphes p250, p256 et p261
20070217_01 MB : typos, coquilles, schmas partitionnement, notes
20070211_01 MB : cosmtique
1ure
Cette %ormation s0e%%ectue normalement sur . Hours7
Li&en&e
n 8ichel "lanc; :vril +LL3
Ce document peut >tre distribu librement; selon les termes de la version +7L de la
licence Creative Commons ? aternit P artage sous conditions identiques
(http9MM$reati'e$ommons%orgMli$ensesMby@saM7%OMfrMdeed%fr)
Vous -tes i,res %
de reproduire; distribuer et communiquer ce document au public
de modi%ier ce document
Seon es &onditions sui/antes %
Haternit>7 Uous deveW citer le nom de l0auteur original7
Hartage des Nonditions Initiales * l'Identi(ue7 Si vous modi%ieW; trans%ormeW ou adapteW cette cration;
vous n0aveW le droit de distribuer la cration qui en rsulte que sous un contrat identique @ celuiPci7
: chaque rutilisation ou distribution; vous deveW %aire appara4tre clairement au& autres les
conditions contractuelles de mise @ disposition de cette cration7
Chacune de ces conditions peut >tre leve si vous obteneW l0autorisation du titulaire des droits7