Vous êtes sur la page 1sur 100

Cours Linux Version 0.

7
Cours Linux
Cours Linux
1) Historique
1969 : Ken Thompson et Dennis Ritchie crivent une premire version du noyau d'un systme
d'exploitation pour les laboratoires !""# $et %& est con'u de (a'on ) apprhender l'ensemble de la
machine de la (a'on la plus homo*ne +ui soit, et viter tout particularisme# "es concepteurs y
appli+uent l'ensemble de leurs convictions sur ce +ue doit -tre un %&, et le nomme ./01, par
humour 2ils travaillent ) l'po+ue sur un &ystme nomm 3."T0$&4#
"e m-me Dennis Ritchie invente en 1956 un lan*a*e de pro*rammation nomm le lan*a*e $ 2aprs
une version 7, puis une version 4# 8eu de temps aprs, Thompson et Ritchie r9crivent le noyau
d'./01 en $ :rompant avec une tradition +ui voulait +ue le noyau d'un systme d'exploitation soit
crit en lan*a*e assembleur:
1
# "'avanta*e est celui de la portabilit de l'%&, +ui peut -tre adapt et
recompil sur une autre plate9(orme, ds +u'un compilateur $ est disponible#### "e lan*a*e $ est plus
abordable +ue l'assembleur, peu li au matriel 2c'est le compilateur +ui l'est4, et couvre les besoins
de bas et de haut niveau#
$'est l'entreprise 7TT +ui (ournit les premires versions commerciales de cet %&# Diverses
entreprises s'intressent ) ce march, et plusieurs versions apparaissent 2&un et son &un%&, +ui
deviendra &olaris, 03 et son 701, ;8 et son ;8.1###4
"'universit cali(ornienne de er<eley travaille *alement sur .nix, et lui apporte des atouts en
rseau 2les commandes r, par exemple, rlo*in, rsh, rcp###
De son cot, 7TT sort une version ma=eur, la version >#
"es .nix d'au=ourd'hui sont les hritiers des versions &D 2ber<eley4 ou 7TT 2&ystem ?4, soit un
peu des deux# &un est de nos =ours un acteur ma=eur d'.nix 2voir notamment /@&, /0&###4
Avolution 7TBT et &D
&ystem ? 2&$% 1!/01 701 &olaris4 &D 2Rseau4
2) Descriptif Unix gnrique
Cuels sont les points communs des systmes .nix D
Tout d'abord, il s'a*it de systmes d'exploitation 3ultitEche 3ulti9utilisateurs# $on'u ) l'ori*ine des
main(rames, il permet donc ) de multiples utilisateurs de travailler sur le m-me ordinateur# &ur les
micro ordinateurs, histori+uement, les systmes taient plutFt mono9tEche et mono9utilisateur# $'est
GindoHs 6#x +ui a introduit la notion de multi9tEche 2et encore, asseI mal *r4, et il a (allut
attendre GindoHs 9> pour un vrai multi9tEche prempti(# ") encore, l'observateur attenti( a pu
remar+uer +u'une simple tache :plante: su((it ) cracher entirement l'%&# Dans le monde 3icroso(t,
seul Gin /T est plus scuris 2utilisation des Rin* J et 6 du processeur, voir cependant la
problmati+ue de la carte ?K74# 3al*r toutes ces avancs, le mode multi9utilisateur est tou=ours
absent des solutions 3icroso(t 20l (aut reconnaLtre +ue cela n'apporte +u'un petit plus4# "'extrme
1 !xtrait de :"'environnement de pro*rammation ./01:, un must9read de Kerni*han et 8i<e###
Sylvain CHERRIER page 1 sur 100 Aout 2010
Cours Linux Version 0.7
(iabilit du noyau "inux 2on parle bien ici du noyau, c'est ) dire du coeur du systme, +ui doit rsister
) tous les crashs des applications4 a certainement pouss la (irme de Redmond dans le sens d'une
meilleure criture de ces %&, a(in de pouvoir tenir la comparaison#
"e noyau est crit en $, ce +ui permet un porta*e, ou une adaptabilit# 0l su((it par(ois de recompiler
son %& 2si vous disposeI des sources bien sMr NNN4 avec les bonnes options pour l'adapter
par(aitement ) votre machine 2les %& microso(t sont compil +uant ) eux de manire *nri+ue, avec
les options correspondant au moins puissant des matriels supports : voir la notion de lo*iciel 16
bits par exemple###4
.n autre point important est l'opti+ue *nri+ue choisie# Tout ce +ue peut *rer l'%& doit l'-tre de
(a'on identi+ue# %n a coutume de dire +ue sous ./01 tout est (ichier### "a *estion des priphri+ues
2dis+uette, clavier souris cran, dis+ue dur, rseau, etc#4 est identi+ue ) la *estion des (ichier# $ette
notion trs troublante +uand on vient d'un autre monde permet ds son appropriation la ralisation
d'action pour le moins tonnante 2duplicata de dis+ue dur, :(ormata*e: de (ichier, trans(erts insolites
comme par exemple la copie de l'entre son d'un 8$ sur la sortie haut parleur d'un autre 8$ en
rseau, etc###4
&hell pro*rammable : ./01 est un systme d'exploitation# 0l permet de (aire (onctionner un
ordinateur, et lui permet d'assurer un certain nombre de services# 8armi ces services, le shell, ou
interprteur de commandes, va permettre ) un utilisateur de lancer des commandes de (a'on
interacti(# $'est le pro*ramme char* d'assurer le dialo*ue avec l'utilisateur# &ous ./01, vous
disposeI de plusieurs shells, vous choisireI celui +ui est le plus prati+ue pour vous# "a tendance
actuelle est ) l'utilisation du 7&; 2ourne 7*ain &hell4# "es autres shells connus sont le &; 2le
ourne &hell4, le Korn shell, le $ shell### Tous ces shells sont capables d'assurer l'excution d'une
suite de commandes, ce +ue l'on appelle un script# Tous ces shells sont de vritables lan*a*es de
pro*rammation###
"e rseau : "es liens entre ./01 et le rseau sont trs importants, de par les avances de &D#
T$8O08 a t port trs tFt sous ./01, et une ma=orit des ordinateurs serveurs de l'0nternet sont
sous ./01#
Cuant ) l'inter(ace utilisateur, il existe aussi une inter(ace *raphi+ue sous ./01 : 0l s'a*it de 1
GindoH, +ui a la particularit d'-tre client serveur et orient rseau# $e systme +ui peut sembler
asseI lourd permet cependant d'tonnantes oprations, comme par exemple lancer de sa machine un
pro*ramme +ui s'excutera sur une autre machine, alors +ue l'a((icha*e *raphi+ue se (era sur une
troisime NNN .n autre avanta*e du client serveur est la possibilit de choisir parmi de multiple
GindoH 3ana*er 2pro*ramme char* du comportement et de style d'a((icha*e4# .n utilisateur 19
GindoH d'une distribution standard de "inux se servira de l'inter(ace KD!, K/%3!, TG3,
!nli*htment ou autre GindoH3a<er, &7G@0&; ou 0ceG3 selon sa convenance et le plaisir +u'il y
trouvera#
!t "inux dans tout 'a D "inux est un produit libre, dvelopp par des tudiants et maintenant des
entreprises 2dont 03, $orel, etc4 +ui est n en 1991# Trs en vo*ue actuellement 2en raction au
monopole de 3icroso(t4, il est trs rpandu sur 0nternet, dans les coles et .niversits, et entre petit
) petit dans le monde de l'entreprise 20K!7, la 8oste, les armes et autres lieux :sensibles ) la
scurit:###4
&es avanta*es : toutes les sources sont (ournies, il est libre,trs stable, trs racti( 2la dtection d'un
bu* est trs rapidement corri*e4, il est *ratuit, compatible 8osix, c'est un challen*er et une
alternative trs srieuse en ce +ui concerne les serveurs, il est trs li au hardHare 2on peut
recompiler les pro*rammes pour les adapter par(aitement ) sa machine4, il est multi9plate9(orme
Sylvain CHERRIER page 2 sur 100 Aout 2010
Cours Linux Version 0.7
27lpha, 8oHer8$, 3acintosh, 03 ."" etc4, et en(in il o((re des per(ormances trs
impressionnantes###
&es inconvnients : 0l est austre 2il (aut aimer la li*ne de commande4, tou((u 2il (aut plusieurs annes
pour vraiment avoir une vue d'ensemble d'un systme ./01 en *nral4, pas ou peu supports
techni+ues 2en (ait, il y a une documentation norme (ournie avec "inux, mais il (aut se donner la
peine de la lire, et c'est par(ois trs lon*4, il n'y a pas tous les drivers 2en e((et, trs peu de (abricants
dveloppent des pilotes pour "inux, il (aut donc attendre +ue des bnvoles hyper comptents les
ralisent et par(ois, sans aucune doc du (abricant4, il y a une certaine m(iance des entreprises
2encore +ue cela chan*e, voir par exemple le coup d'un virus comme 0 "%?! P%., +ui, ) lui seul,
montre le dan*er de la mono9culture microso(t4, et en(in +u'en est il de la prennit du produit 2un
produit *ratuit, (ait par des bnvoles, peut il survivre ) lon* terme D !n (ait, la +uestion serait plutFt
l'inverse : un produit propritaire, (abri+u par une entreprise +ui pourrait disparaLtre, peut il survivre
) lon* terme D 2voir $8O3, Dbase, Cuic<en, etc44
Une petit esure !e la taille !e la !o"uentation sous Linux # 101 $illions !%o"tets !e texte &pres'ue( pur )))
2.a - Prise de contact
7llons y : dmarrer votre machine# 7prs un ventuel "0"% 2c'est un petit pro*ramme au dmarra*e
de la machine, +ui permet de dmarrer soit "inux, soit GindoHs# !n (ait il permet de dmarrer
pres+ue n'importe +uoi, mais disons +ue le choix GindoHsO"inux est ce +ue l'on trouve
habituellement###4#
7prs le d(ilement de nombreuses in(ormations 2"inux est bavard, ce +ui est prati+ue pour dtecter
une panne NNN4, vous arriveI ) un cran de lo*in, c'est ) dire de connexion#
!ntreI votre nom de lo*in, et votre passHord : vous -tes connect au systme#
on, maintenant, +u'est ce +u'on (ait D $ommen'ons par arr-ter la session : tapeI logout# ?ous -tes
dconnect, l'cran repasse en mode de lo*in#
7vant d'aller plus loin, revenons ) des notions thori+ues# &ous "inux 2et sous ./01 en *nral4,
vous -tes dans une 7R%R!&$!/$!# $'est ) dire +u'il y a une or*anisation hirarchi+ue de
rpertoires, +ui peuvent contenir des (ichiers etOou des rpertoires# $ette notion est simple, puis+ue
le monde 3icroso(t l'a repris# 8ar contre, il n'y a pas de $: ou de 7:# Dans le monde GindoHs, il y a
Sylvain CHERRIER page * sur 100 Aout 2010
Cours Linux Version 0.7
une arborescence pour cha+ue support# &ous "inux, 0l n'y a +u'une et une seule arborescence NNN !t
en plus c'est tou=ours la m-me, +ue vous soyeI sur un systme +ui n'a m-me pas de dis+ue dur 2=uste
une cl .& par exemple4, ou sur un super ordinateur avec >J T%ctets en li*ne NNN
$ette arborescence a une racine, un dbut, un sommet### $elui ci est not O
%n l'appelle aussi root# %n trouve donc sous root tou=ours les m-mes rpertoires : $hacun d'eux a un
rFle bien d(ini# 7insi, on trouvera :
Oetc Tous les fichiers de configuration sont ran*s ici###
Obin "es programmes importants#
Osbin "es programmes ncessaires au dmarrage de la machine N "e S ici sous entend +ue
les pro*rammes sont stati+ues 2compils de (a'on ) -tre autonomes, et ne pas dpendre
de librairies 2les #so, +uivalents des D"" sous GindoHs4# 0l semble pourtant +ue
certains pro*rammes prsents soient dynami+ues 2c'est ) dire dpendants de
biblioth+ues4 2+ota # pour savoir !e 'uelles so !,pent un prograe- utilise. la
"oan!e l!!4
Oboot "e noyau est par(ois ran* ici2noyau Q coeur du systme d'exploitation4
Ousr 0ci, des pro*rammes et des in(ormations plus propre ) cette machine###
OusrObin O 8ro*rammes moins important +ue Obin###
OusrOlocal "o*iciels propres ) cette machine 2=eux, services, etc4
Ohome Rpertoires des utilisateurs# 7ttention, ce rpertoire est prot*, ce sont les sous
rpertoires ) l'interieur +ui sont spci(i+ues ) cha+ue utilisatuer
OhomeO### $ha+ue utilisateur a un rpertoire pour stoc<er ses donnes# 0l a les droits sur ce
rpertoire#
Otmp $omme son nom l'indi+ue### 7ccessible ) tous
Ovar 7dministration### &ouvent les traces et suivi d'vnements###
OvarOlo* "'histori+ue des connexions, incidents, utilisation, re+u-tes, accs####
OvarOspool "e tampon d'impression ou de courrier par exemple
Omnt .n rpertoire de montage 2pour l'accs aux priphri+ues amovibles### 3aintenant, c'est
Omedia +ui a ce rFle 2) cause du pro*ramme udev, +ui cr ) la vole le rpertoire
correspondant ) cha+ue ressource dtecte4
$omme vous le voyeI, tout est bien d(ini# De plus, selon votre identit, vous aureI plus ou moins de
droits d'accs sur chacun de ces rpertoires : cela permet d'assurer une certaine stabilit du systme,
car un simple utilisateur ne peut pas e((acer de pro*rammes dans Obin par exemple, ni propa*er de
virus#### /ous verrons cette *estion des droits, propre aux systmes moderne, plus loin#
Dernier petit point : nous verrons plus tard comment utiliser un cdrom, ou une dis+uette# Disons
simplement ici +u'il (aut :monter: un priphri+ue dans un rpertoire pour accder ) son contenu#
$'est ) dire +u'il (audra dire : :"a dis+uette, ou la cl .&, +ui est de type 3icroso(t GindoHs, lis la,
et (ais moi apparaLtre son contenu dans tel rpertoire:# 7prs cette opration, et =us+u') nouvel
ordre, le rpertoire reprsentera la dis+uette# %n peut :monter: des priphri+ues dans n'importe
+uel rpertoire cr pour l'occasion# !n (in de travail, il ne (audra pas oublier de :dmonter: le
support, pour librer le rpertoire, et permettre ) l'%& de stabiliser le contenu du support#
Sylvain CHERRIER page / sur 100 Aout 2010
Cours Linux Version 0.7
Remar+ueI en(in +ue l'on peut indi+uer le type d'or*anisation du support ma*nti+ue 2par exemple
(at, v(at, minix, nt(s###4# &i l'%& connaLt ce type, alors il est capable d'en lire le contenu, et vous
permet de le *rer NNN
2.b - Initiation aux droits (excuter, lire, crire, traverser, etc.)
"inux tant multi utilisateur, il o((re la possibilit de scuriser l'accs aux donnes# 7insi, pour
cha+ue (ichier ou rpertoire 2et m-me pour un priphri+ue, car n'oublions pas +u'./01 considre
tout comme des (ichiers4, il va -tre possible de *rer les droits de lecture criture excution#
ienvenue dans le monde merveilleux des 7$$!&& D!/0!D###
$ha+ue utilisateur dispose d'un home directory, un rpertoire +ui lui est rserv### &i =e me lo**ue
sous le nom de sylvain, =e disposerai d'un rpertoire OhomeOsylvain# Re pourrais y enre*istrer des
donnes, et =e pourrais *rer la scurit d'accs ) ces donnes### .n ob=et 2(ichier, rpertoire, etc4,
appartient tou=ours ) +uel+u'un#### !t ce +uel+u'un peut en *rer les droits# 0l existe cependant un
utilisateur un peu particulier 2root4 +ui peut tout (aire# $'est l'administrateur du systme#
"'administrateur du systme 2root4 est char* de la *estion de la machine, et des utilisateurs# $'est lui
+ui cre votre compte, active les services, or*anise la scurit et les sauve*ardes# "e systme lui
o((re de re*rouper les utilisateurs en *roupes, car il sera plus (acile ensuite de donner des droits ) un
*roupe plutFt +u'a cha+ue utilisateur#
7ttendeI vous donc ) -tre un utilisateur, et ) appartenir ) un 2voire plusieurs4 *roupe2s4# ?ous
disposereI donc d'un nom de lo*in, d'un .0D 2.ser 0denti(ier, un numro uni+ue4 et d'un K0D
2Kroup 0denti(ier4# De m-me, cha+ue ob=et +ue vous verreI aura un propritaire 2un .&!R4# 0l
existera des droits pour ce propritaire, des droits pour un *roupe prcis 2pas tou=ours le *roupe du
propritaire d'ailleurs4 et pour les autres###
2.c - Dmarrage Arrt de la machine
monta*e9cache9services9niveau init
7u dmarra*e, il est possible de choisir le niveau de dmarra*e 2le niveau d'init4# $ela peut (aire
penser au mode de dmarra*e de GindoHs# &elon les cas, vous pouveI dmarrer la machine en
mode autonome 2vous -tes seul sur la machine4, en mode multi9utilisateur, ou encore en mode
multiutilisateur avec connexion *raphi+ue####
"'ensemble des services est lanc une (ois pour toutes au dmarra*e, ce +ui expli+ue la multitude de
messa*es &tartin*#### +ui apparaissent au dbut# /'oublieI pas +ue "inux est un vrai serveur NNN "a
machine sur la+uelle =e tape ce texte 2un simple 8SJJ avec TU 3o de R73, du moins lors de sa
premire version :944 dispose de > serveurs G!, 1 serveur @T8, accepte des connexions rseau
2telnet, et autres commandes r###4, un &KDR 28ostKres4, etc###
De plus, au dmarra*e, l'accs aux supports ma*nti+ues est lanc, puis mis en cache 2c'est ) dire
+ue le trans(ert de donnes se (era au moment le plus opportun, a(in d'o((rir un temps de rponse trs
court4#
!n ce +ui concerne l'arr-t de la machine, pour des raisons de stabilisations 2(lush ou vida*e du cache4
et parce +ue "inux est un serveur, il (aut bien demander l'arr-t de la machine# %n peut le (aire trs
rapidement en pressant $TR" 7"T &.88R# "'arr-t de tous les services est alors lanc, la
synchronisation de tous les supports ma*nti+ues est e((ectue, et le systme s'arr-te####
Sylvain CHERRIER page 0 sur 100 Aout 2010
Cours Linux Version 0.7
2.d - crans Virtuels
"inux est un vrai systme multi9utilisateurs : 0l est donc possible de s'y connecter plusieurs (ois#
?otre 8$ sous "inux o((re de base 6 crans texte et un cran *raphi+ue# $omment (aire pour y
accder alors +ue vous n'aveI +u'un seul clavier cran D
Rponse : en utilisant les touches 7"T et les touches de @onctions : 7lt9@1 donne le premier cran,
7lt9@S le second, 7lt9@6 le troisime###7lt9@6 le sixime et 7lt9@5 pointe sur l'cran *raphi+ue 2si le
1 GindoH est en route, bien sur4
7ttention : 8our ressortir de 1 et repartir vers les crans virtuels textes, utiliseI la combinaison
7ltV$TR"V@x#
ien sur, vous pouveI -tre un utilisateur di((rent sur chacun des crans, ou le m-me partout, ou un
mlan*e des deux# "'ensemble de ces crans est indpendant, et il est souvent prati+ue de lancer un
lon* travail sur l'un d'eux, et de travailler en interacti( sur un autre#
%n utilise aussi cette techni+ue pour surveiller une tache, voir m-me dblo+uer un cran 2si une
tache se blo+ue, passeI sur un autre cran, et :tuer: 2arr-ter4 la tache blo+ue###
0l est possible de lancer plusieurs sessions *raphi+ues# 8our ce (aire, alleI dans un cran texte, et
lancer un nouveau startx 2il (aut crire exactement startx W:14# "e double tiret veut dire +u'on ne veut
pas lancer un nouveau serveur 1, mais =uste une nouvelle inter(ace# !t le :1 indi+ue le deuxime
cran *raphi+ue 2et oui, le premier, c'est:J4# 7ttention, si l'inter(ace *raphi+ue est sur la console 5,
alors, cette nouvelle sera sur l'cran U### !t ainsi de suite 2:J correspond ) l'cran 5,:1 ) l'cran U,:S )
l'cran 9###4
2.e - Dmarrage et arrt de session
commande login
"o*in est un pro*ramme +ui est lance sur cha+ue terminal o((ert par votre pc# $elui vous demande
votre nom 2attention a la casse, c'est a dire les ma=uscules minuscules4 puis votre mot de passe# $e
couple est ensuite compare aux in(ormations contenues dans les (ichiers char*es de la scurit des
utilisateurs, c'est a dire OetcOpassHd 2nom de utilisateur, numros, rpertoire de base, et pro*ramme
lance au dmarra*e4 et OetcOshadoH 2mot de passe crypte4# &i la paire est valide, vous vous retrouveI
dans le pro*ramme dtermine dans OetcOpassHd 2il s'a*it souvent d'un shell, c'est a dire un
pro*ramme +ui attend +ue vous saisissieI des commandes4, et votre rpertoire acti( est le home# 0l
existe d'autres systmes d'authenti(ication centraliss, dans le+uel votre machine se tourne vers un
systme central pour +ue l'utilisateur obtienne ses accrditations#
commande who
$ette commande permet de connaLtre la liste des utilisateurs actuellement connectes a votre machine#
&i vous -tes connect sur plusieurs terminaux virtuels, vous le verreI###
commande logout
@in de connexion, cette commande (erme tous les travaux en cours, et remet le terminal dans son tat
de dpart 2attente de lo*in4#
Sylvain CHERRIER page 1 sur 100 Aout 2010
Cours Linux Version 0.7
$ommande exit
&ortie du pro*ramme en cours, ce +ui peut correspondre ) une dconnexion 2un lo*out4### mais pas
tou=ours###
2.f - Commandes de rpertoires
pwd : 8rint Gor<in* Directory, cette commande vous indi+ue le nom du rpertoire acti(, c'est a dire
celui dans le+uel vous -tes en train de travailler# %n ne peut -tre +u'a un seul endroit a la (ois###
ls : a((iche le contenu du rpertoire courant 2ou du rpertoire demande4# A+uivalent de D0R sous
Dos#
cd : chan*ement de rpertoire# "'appel de ## permet de remonter d'un niveau# cd tout seul vous
repositionne dans votre home### 7TT!/T0%/ aux notions de R!"7T0@ et d'7&%". 2pour savoir
oX vous -tes, et comment se dplacer vers votre ob=ecti( 2voir plus loin la "opl,tion4
mkdir : permet la cration d'un ou plusieurs rpertoires
rmdir : permet la suppression d'un ou plusieurs rpertoires 2vides bien sur4
ls -al, ls -d : $e sont des options de ls# $onsulteI le man pour en savoir plus 2man ls4
le ~ (tilde) et les chemins (absolu et relatifs)...
0l (aut bien comprendre l'arborescence des rpertoires, et les (ichiers# "es (ichiers sont un ensemble
cohrent de donnes, +ue l'utilisateur a dcid d'enre*istrer# 7(in de retrouver son travail, il doit
donner un nom ) ces donnes# $e nom peut ou non avoir un rapport avec les donnes# 0l n'est pas
stoc< dans les donnes, mais en tant +ue nom symboli+ue d'accs ) ces donnes# $es donnes 2ou
ce (ichier, comme on veut4 sont ran*es +uel+ue part : dans un rpertoire# "e vrai nom des donnes
est constitu de l'assembla*e du nom du rpertoire et du (ichier 2par exemple, le (ichier truc dans le
rpertoire OusrOlocalObin : "e nom complet du (ichier est OusrOlocalObinOtruc4# $e nom est
compltement +uali(i, ou encore absolu# 8reneI l'habitude de bien r(rencer vos donnes, de bien
comprendre ou vous vous situeI dans l'arborescence des rpertoires, et d'-tre capable de vous
dplacer dans cette arborescence#
la compltion et l'dition de la li*ne de commande
Toute la puissance de la li*ne de commande 2l'inter(ace texte4 est accessible *rEce ) la compltion#
!n utilisant la touche T7, le bash 2l'interprteur habituel sous "inux4 ira chercher pour vous tous
les noms +ui correspondent au dbut de votre saisie## &i il y a une solution uni+ue, le bash complte
pour vous#### &inon, la machine beep NNN .ne seconde pression sur T7 donne soit un beep 2il n'y a
pas de mot commen'ant par votre saisie NN4 soit vous obteneI la liste de toutes les solutions
possibles NN
Sylvain CHERRIER page 7 sur 100 Aout 2010
Cours Linux Version 0.7
ici, pour obtenir la (rappe de la commande file usrOdocOheroes-data91#6O!/&T7"", =e n'ai
tap +ue
fi T7 T7 l T7 /u T7 d T7 T7 o T7 T7 h T7 -d T7 T7 I T7
0l n'y a plus de (aute de (rappe 2puis+ue c'est la machine +ui saisie N4, et on (ait directement la lecture
du contenu des rpertoires en m-me temps +ue l'on saisie la commande N De plus, on a une li*ne de
65 caractres en tapant seulement 11 touches###
2.g - Commandes de fichiers
ls : liste le contenu d'un rpertoire : 7ttention, certains (ichiers sont cachs 2ceux dont le nom
commence par un #4 "'option 9a permet de voir tous les (ichiers# "'option 9l permet d'avoir plus
d'in(ormations sur chacun de ces (ichiers
2ile : commande mineure, +ui permet de savoir le type d'un (ichier 20l est pr(rable de se baser sur le
contenu rel du (ichier plutFt +ue sur l'extension de son nomNNNN4
"p : copie les (ichiers 2comme copy en dos4# "p origine arriv,e# 3rigine peut -tre un ou plusieurs
(ichiers arriv, peut -tre un (ichier 2si une seule ori*ine4, ou un rpertoire 2si une ou plusieurs
ori*ines4
v : comme cp, si ce n'est +u'il e((ace l'ori*ine
r : suppression du ou des (ichiers donns en ar*ument
"at ore et less: a((iche le contenu du ou des (ichiers donns en ar*ument# $at est la commande la
plus simpliste, less la plus labore###
Sylvain CHERRIER page 4 sur 100 Aout 2010
Cours Linux Version 0.7
tou"5 : commande mineure, +ui permet de chan*er la date de dernier accs ) un (ichier, sans ris+ue
de modi(ier son contenu 2penser aux sauve*ardes4# .tilis souvent car il permet de crer le (ichier si
celui ci n'existait pas 2il sera vide, J caractres4
3) les aides
"a commande man " man commande permet d'avoir accs ) l'aide sur cette commande : tou=ours
prsent selon une norme 2/%3, &P/%8&P&, D!&$R08T0%/, %8T0%/&, .K&4, elle est asseI
complte 2souvent plusieurs pa*es crans4# %n peut se dplacer *rEce aux touches de directions, ou
!space et !ntre pour avancer, rechercher un mot avec la touche O suivi du mot, et on sort avec la
touche C#
la commande apropos 2ou Hhatis, si il y a eu un ma<eHhatis4 : apropos commande a((iche une li*ne
d'in(ormation sur l'ob=ecti( de la commande en +uestion#
"a commande info : $ommande plus rcente, elle permet, ) la mode !37$& 2diteur de R3&, trs
trs complet4 d'accder ) l'aide, hypertextuelle et par(ois encore plus complte +ue man# "e curseur
vous permet de vous dplacer sur des mots cle(s 2prcds d'une toile4, de valider pour a((icher la
pa*e correspondante, n et p pour les pa*es suivantes et prcdentes 2/ext et 8revious4, espace et
bac<space pour avancer et reculer dans la pa*e, et + pour +uitter l'aide#
"e --help : en *nral, les pro*rammeurs ont prvu une aide succincte dans la commande, accessible
par l'option 99help 2ou 9D4
les #$%&$ : &ouvent ran*s dans OusrOshareOdoc, les ;%GT% 2et mini ;%GT%4 sont des
description asseI compltes d'ordre *nri+ue 2comment (onctionne le &$&0, +u'est9ce +u'un
@ile&ystem, comment *raver des $ds, etc##4
4) L'entre et la sortie standard
4.a - Redirections
redirections : toute commande bien ne utilise l'entre standard 2stdin, ou J4, la sortie standard
2stdout, ou 14, et la sortie d'erreur 2stderr, ou S4# 0l s'a*it du (icher en entre 2en pro*rammation :
&hell commande read, ou cin 2en $VV4, ou scan( 2en $4, ou &ystem#in2en Rava44, en sortie 2Hrite,
cout ou print( ou &ystem#out4, et du (ichier +ui va rcuprer les messa*es d'erreur 2perror4#
!n *nral, c'est le clavier +ui est considr comme stdin, et l'cran est assi*n ) stdout et stderr#
$'est pour cette raison +ue les messa*es d'erreur apparaissent en m-me temps +ue les bons rsultats#
Ds +ue l'on a compris cette notion de stdin, stdout, et stderr, on peut s'amuser ) ne visualiser +ue
les sorties +ui nous intresse, ou encore utiliser une autre entre +ue le clavier### 8ar exemple,
demandons ) la machine de nous a((icher le contenu des tous les rpertoires et sous rpertoires de
Ohome### Avidement, nous allons avoir normment de rponses# 3ais si nous supprimons le stdout,
et ne *ardons +ue le stderr### /ous verrons tous, et seulement, les messa*es d'erreur### !n *nral, il
s'a*ira des (ichiers et rpertoires au+uel l'accs nous est interdit### ?ous devineI l'intr-t d'une telle
commande D
$omment rediri*er les entres et sorties D KrEce aux si*nes suivants
Sylvain CHERRIER page 6 sur 100 Aout 2010
Cours Linux Version 0.7
' : rediri*e stdout vers le (ichier indi+u aprs Y
'' : comme Y, mais si le (ichier existait, on a=oute ) la suite 2mode append4
(' : redirection de stderr vers le (ichier indi+u
)' : comme Y
* : redirection d'entre, le (ichier indi+u aprs Z remplace stdin 2donc, souvent, se substitue au
clavier4
exemples :
ls 7al 89tp92i"5ier
:5o 889tp92i"5ier
2!is; 9!ev95!a <9tp9reponses=prevues
&acheI +ue vous pouveI =on*ler avec la puissance d'.nix, et donc utiliser la base de ce systme :
T%.T !&T @0$;0!R# 0l existe des (ichiers prati+ues, tel +ue OdevOnull 2le trou noir, +ui absorbe
tout4, OdevOIero 2+ui (ournit une in(init de caractres J4, etc### "'exemple donn plus haut, +ui
permet la rechercher de tous les endroits interdits, s'crit de la (a'on suivante :
ls 7Rl 95oe 89!ev9null
4.b - pipes et commandes filtres associes
(iltres 2bri+ues simples4 grep, cut, sort, head, tail, uni+, wc, tr, tee###
8lus amusant encore, il est possible d'enchaLner les commandes## a(in +u'une commande travaille sur
le rsultat de la commande prcdente### 0l s'a*it en (ait de brancher le stdout d'une commande sur le
stdin de la commande suivante### et ainsi de suite### ;abituellement, on connaLt cette instruction
2sous 3&D%&4 :
D0R [ 3%R!
"a sortie de la commande D0R alimente la commande 3%R!# $e systme, mal implment sous
D%&, vient d'.nix, ou il est particulirement e((icace 2il sous9entend automati+uement le
multitache N4# le \ pipe ] est obtenu en combinant la touche 7"TKR et la touche U# $e systme
permet la construction de commandes labores, bases sur une succession de commandes simples,
\ pipes ] entre elles### %n vite ainsi de passer par des (ichiers temporaires, ce +ui ralentirait le
droulement de l'opration# "es \ pipes ] peuvent bien sur s'enchaLner les uns les autres###
"es \ pipes ] utilisent souvent des (iltres, c'est ) dire des commandes +ui modi(ient, dcoupent,
ror*anisent ou simpli(ient le (lux entrant 2c'est ) dire ce +ui arrive sur stdin4# "es (iltres sont les
commandes suivantes : grep, cut, tr, sort, uni+, wc, tail, head, sed..# %n utilise aussi wc 2compte
les mots, li*nes et autres caractres4, et more ou less 2pa*er, +ui permettent le dcoupa*e lisible4
4.c - les filtres
more, less : ce (iltre est un pa*er : il dcoupe le (lux entrant en pa*es### prati+ue pour viter de se
(aire en*loutir par de trop nombreuses in(ormations : less est suprieur, car il permet de revenir vers
Sylvain CHERRIER page 10 sur 100 Aout 2010
Cours Linux Version 0.7
le dbut#
grep : grep %pattern% recherche dans le (lux les li*nes +ui contiennent le 'pattern' : il les laisse passer#
&i la li*ne ne contient pas le parttern, elle disparaLt du (lux# 0l existe des options intressantes, comme
le 9v, +ui inverse le (onctionnement 2les li*nes +ui correspondent au pattern disparaissent, ce sont les
autres +ui passent le (iltre4# $ommande trs importante et utile#
tail, head : ne laisse passer +ue le dbut 2ou la (in4 du (lux# !n *nral, 1J li*nes#
tr : permet de substituer des caractres 2en *nral, 1 par 14 : par exemple tr 'b' 'a' trans(ormera tous
les b du (lux +ui passe en a# $ela ne (onctionne pas sur des mots, par contre# %ptions utiles 9s 2pour
s+ueeIer 2tasser4 un caractre 2l'espace par exemple, comme dans tr 7s % % 4, ou encore 9d pour
carrment supprimer un caractre du (lux 2tr 7! 0 supprimera tous les Iros du (lux4#
sort : tri les li*nes du (lux# "'ensemble de la li*ne est considr par la commande# 7ttention aux
problmes des nombres 2voir l'option 9n4
uni+ : limine les li*nes en double dans le (lux : 7ttention, les li*nes doivent se suivre 2utilis en
con=onction avec sort4
wc : Gord $ount, compte les caractres, les mots et les li*nes du (lux# 8rati+ue pour (aire des
stastisti+ues#
sed : mini9diteur +ui travaille sur les li*nes ) la vole du (lux : .tilise les commandes de l'diteur ed#
8ar exemple, se! s9auteur9%Sylvain C5errier > "opyrig5t 2004%9 trans(ormera cha+ue occurrence du
mot auteur dans le (lux par &ylvain $herrier W copyri*ht SJJU#

Sylvain CHERRIER page 11 sur 100 Aout 2010
Cours Linux Version 0.7
5) VI
?i est un diteur de texte, c'est ) dire un pro*ramme +ui permet l'criture et la *estion de textes# 0l
est trs versatile, et trs rpandu# &a mauvaise rputation n'a d'*ale +ue sa puissance# !n e((et, il ne
s'a*it pas d'un diteur G0&0GPK# 0l (onctionne en mode texte, bien +ue des versions *raphi+ues
existent# 0l dispose d'une multitude de commande, et d'extension# 0l peut servir ) diter n'importe
+uel (ichier d'administration 2sous "inux, les (ichiers de con(i*uration sont en *nral de simples
(ichiers textes, ce +ui permet la *estion de la machine et des services sans passer par un (rontal
+uelcon+ue 2bien +u'il en existe plein NNN44, mais aussi des (ichiers en ;T3" 2avec vue traduite ou
brute4 et des sources de pro*rammes 2avec analyse syntaxi+ue, et m-me lancement de
compilation###4#
$e +ui lui est reproch est son man+ue d'intuitivit 2il (aut se souvenir des commandes par coeur4#
;eureusement, il s'a*it souvent d'initiales de commandes 2dH pour Delete Gord4, prsent sous
(orme d'alphabet assemblable 2d pour delete, c pour chan*e, H pour mot, ^ pour =us+u') la (in, d'oX
c^ pour chan*er toute la (in d'une phrase4# De plus, l'apprentissa*e peut -tre (acilit si on l'utilise
(r+uemment cet diteur, c'est pour+uoi bash permet de *rer la li*ne de commande ) la (a'on vi pur
et dur 2soit par la commande set o vi, soit en compltant le #inputrc avec la li*ne set editin*9mode vi
2dans le home directory de l'utilisateur4#
"a di((icult d'apprentissa*e sera un =our rcompense par la vitesse dans vos travaux#
5.a - Le principe de fonctionnement.
?0 dispose de trois modes : commandes, insertion, et (in de li*ne# 7u dmarra*e, il est en mode
commandes# 8our y revenir, appuyer tou=ours sur la touche !&$#
Sylvain CHERRIER page 12 sur 100 Aout 2010
3ode (in de li*ne
enre*istre, ouverture,
commandes d'ditions
2sur la totalit ou partie du texte4
appel du shell,
etc
3ode (in de li*ne
enre*istre, ouverture,
commandes d'ditions
2sur la totalit ou partie du texte4
appel du shell,
etc
3ode commande
dplacements, couper copier coller,
e((acement, remplacement####
3ode commande
dplacements, couper copier coller,
e((acement, remplacement####
3ode 0nsertion#
Dplacements, saisie et e((acement du texte
!xactement comme dans vos lo*iciels
habituels###
3ode 0nsertion#
Dplacements, saisie et e((acement du texte
!xactement comme dans vos lo*iciels
habituels###
i, o ou a
!&$
: 2S points4
!&$
Cours Linux Version 0.7
La trae g,n,rale !u 2on"tionneent !e VI...
5.b - Le mode commande :
0l permet de visualiser l'ensemble du texte, et de s'y dplacer# "es touches de dplacement sont
normalement les suivantes :
h va ) *auche
l va ) droite
< remonte
= descend
&ouveneI vous surtout de < et =, car elles seront utiles sous bash 2lors+u'il est en mode vi4# !n (ait,
votre vi a beaucoup de chance d'-tre en (ait vim 2vi improved4 : les touches de curseurs seront alors
*res 2(lches en haut, bas, *auche et droite ainsi +ue 8a*e.p et 8a*eDoHn4#
5.b.1) Les objets :
pour traiter du texte, il (aut savoir comment le lo*iciel appelle les di((rentes parties manipules#
7insi, vi appelle H un mot 2un Hord4, ^ indi+ue de la position courante =us+u') la (in de la li*ne, e
indi+ue un mot et l'espace derrire###
5.b.2) Voyons quelques commandes maintenant :
Commande Explication Mode d'emploi
r 8ermet d'chan*er par une lettre &e positionner sur la lettre )
chan*er, tapeI r suivi de la
bonne lettre
R ascule en mode de remplacement 2pour chan*er un
certain nombre de caractre4
&e positionner, appuyer sur R
2un indicateur R!8"7$!
apparaLt en bas4 et taper le
nouveau texte# &ortir par !&$
d !((ace l'ob=et indi+u 2H ^ e ##4 et en pro(ite pour le
mettre en bu((er 2+uivalent au couper, donc4
&e positionner au dbut de
l'ob=et ) modi(ier, puis tapeI d
suivi de l'ob=et
dd ?ariante du d, cette commande supprime la li*ne
entire
&e positionner n'importe oX sur
la li*ne, et taper dd
Sylvain CHERRIER page 1* sur 100 Aout 2010
Cours Linux Version 0.7
Commande Explication Mode d'emploi
c Remplace l'ob=et indi+u 2H ^ e ###4 &e positionner au dbut de
l'ob=et ) modi(ier, puis tapeI c
suivi du code de l'ob=et, et taper
le nouveau texte 2on passe en
mode insertion 9Y sortie par
!&$4
y $opie l'ob=et indi+u 2H ^ e4 2se dit yan<4# "'ob=et
est alors dans le bu((er#
&e positionner, et taper y suivi
du code de l'ob=et#
yy ?ariante du yan<, yy copie la li*ne entire &e positionner n'importe oX sur
la li*ne, et taper yy
p 8ut : cette commande est l'+uivalent du coller# &e positionner ) l'endroit voulu,
et taper p
Toutes ces commandes peuvent -tre a*rmentes de valeurs, ce +ui permet d'tendre leur porte#
7insi d accepte une valeur avant le type de l'ob=et, de m-me +ue c et y### ce +ui donne
d6H 9Y e((ace les trois mots#
cSH 9Y chan*e les deux mots suivants#
De m-me, les commandes dd et yy acceptent une itration#
1Jdd supprime 1J li*nes#
6yy copie 6 li*nes#
5.b.3) Commandes de dplacement et de recherche.
Commande Explication Mode d'emploi
H Dplacement de mot en mot H
^ 7ller directement en (in de li*ne ^
_ 8ermet de revenir en dbut de li*ne _ 2il (aut taper deux (ois sur la
toucheNNN4
Sylvain CHERRIER page 1/ sur 100 Aout 2010
Cours Linux Version 0.7
Commande Explication Mode d'emploi
` 3a*i+ue pour les pro*rammeurs, cette touche
permet de trouver l'autre caractre particulier en
re*ard de celui sur le+uel se trouve le curseur 2sert
) trouver la parenthse (ermante lors+ue l'on est sur
l'ouvrante, par exemple4
&e mettre sur un caractre de
type a b ou 2 et taper `#
K 7lleI ) la (in du texte TapeI K
xxxK 8ermet d'aller directement ) la li*ne xxx TapeI directement xxxK : rien
n'apparaLt pendant la (rappe,
seul le saut est e((ectu au
moment du K
$trl9* 7((iche des in(ormations sur votre position actuelle
dans le (ichier
TapeI ctrl *, et lire la dernire
li*ne###
5.c - Passer en mode insertion
8our passer dans ce mode +ui est le stricte +uivalent au traitement de texte +ue vous connaisseI,
vous aveI plusieurs possibilits :
Commande Explication Mode d'emploi
i 8asse en insertion 2saisie de texte4 ) l'endroit du
curseur
&e positionner ) l'endroit ou l'on
veut insrer le texte, et taper i#
0 8asse en mode insertion en dbut de la li*ne pointe &e positionner n'importe oX sur
la li*ne devant la+uelle on veut
insreI, et taper 0#
a 7ppend : insert aprs le caractre courant###
7 0nsert en bout de li*ne#
% 0nsert sur une nouvelle li*ne, en dessous de la li*ne
courante#
&e positionner sur la li*ne, et
taper % pour saisir =uste en
dessous#
%n ressort de ce mode par la (rappe de la touche !&$#
5.c.1) Le mode fin de ligne.
%n y accde par les touches : ou O ou encore N
$'est ici +ue l'on peut *rer les documents 2enre*istrer, ouvrir, (aire des substitutions, insrer d'autres
textes, ou des rsultats de commandes4# %n l'appelle ainsi pour la simple raison +ue la (rappe apparaLt
en dernire li*ne de l'cran#
&ouvent, on peut moduler la porte des commandes en utilisant a,b ou a reprsente la premire li*ne
et b la dernire li*ne mise en =eu dans la commande# 8ar exemple, H voulant dire enre*istrer 2Hrite4,
la commande :>,5H toto devrait enre*istrer le texte de la >me, 6me et 5me li*ne dans un (ichier
nomm toto#
Sylvain CHERRIER page 10 sur 100 Aout 2010
Cours Linux Version 0.7
Commande Explication Mode d'emploi
H !nre*istre le (ichier 2sous son nom courant4# 0l est
possible de taper un autre nom 2la compltion de
bash (onctionne N4
:H toto
e %uvrir un (ichier, dont on donne le nom en
ar*ument
:e toto
N !xcute la commande shell donne en ar*ument :N ls excute dans un sous shell
cette commande, puis revient )
vi
r 0nsert le nom du (ichier donn en ar*ument sous la
li*ne courante
:r titi
+ Cuitte vi# :+
O Recherche la chaLne donne en ar*ument# O tout seul
a((iche la prochaine concordance, de m-me +ue n
2pour next4#
"a (rappe de Oessai place le
curseur sur la prochaine
occurrence 2si elle existe4 de
essai dans le texte dit#
;elp 8ermet d'a((icher un cran d'aide 2ou(N4 :help
s &ubstitution d'une chaLne par une autre#
l'option * en (in de commande permet de chan*er de
(a'on *lobale, sur la porte de la commande 2voir
exemple4#
:sO?imO/otepadO remplace sur la
li*ne courante la premire
occurrence de la chaLne ?im par
la chaLne /otepad#
:sO?imO/otepadO* (ait la m-me
chose pour T%.T!& les
occurrences de ?im dans la
li*ne courante#
:>,1JsO?imO/otepadO* chan*e
T%.T!& les occurrences de
?im de la li*ne > ) 1J 2m-me si
plusieurs par li*ne4
Sylvain CHERRIER page 11 sur 100 Aout 2010
Cours Linux Version 0.7
6) Le systme de fichiers de Linux (extended 3 FS)
.n systme de (ichiers permet la *estion de donnes sur un priphri+ue, en reprsentant ces
donnes sous (orme de (ichiers, re*roups dans des rpertoires or*aniss de (a'on hirarchi+ue : c'est
l'arborescence des rpertoires# !vidment, ceci est un *rand menson*e, et une vue de l'esprit# /ous
savons +ue le dis+ue dur par exemple est constitu de pistes et de secteurs : .n (ichier est stoc< sur
un ou plusieurs secteurs d'une ou plusieurs pistes, un point c'est tout#
"'astuce du (ile system est donc de prsenter cette ralit d'une autre (a'on, en introduisant un
ensemble d'in(ormations attaches au (ichier 2son nom, sa position relative ) l'ensemble c'est ) dire
l'endroit conceptuel de ran*ement, sa date de cration, ses attributs ###4#
$ha+ue %& utilise un ou plusieurs systme de (ichiers# $ertains en comprennent plusieurs#
"e (ile systme de dos 2(at, ou (at16, ou v(at, ou (at6S, selon les po+ues4 permet de donner un nom
de U caractres plus 6 2voire plus depuis v(at, mais il s'a*it en (ait d'une surcouche ) (at16, puis+ue le
systme utilise un table supplmentaire entre le nom lon* 2v(at, ou virtual (at4, et le nom rllement
utilis dans la machine 2(at1644# 0l permet de donner T attributs aux (ichiers 2lecture seule, systme,
cach et archive4# 0l n'est pas (ait mention de propritaire, ni de *roupe#
"e systme de (ichier de "inux s'appelle ext6(s# !n (ait, "inux utilise un ?@& 2?irtual @ile &ystem4,
+ui est un pseudo systme de (ichier +ui vient en surcouche du systme rel# $ette habile
construction vous permet de n'apprendre +u'un type de commandes, +ui (onctionneront sur
l'ensemble des (iles systme de votre machine : /ous savons +u'il est possible de travailler sur des
partitions D%& ) partir de "inux : &acheI de plus +ue les commandes sont tou=ours les m-mes###
$'est le ?@& +ui trans(ormera les commandes utilises en commandes relles appropries au (ile
systm utilis### .n cp deviendra un copy sur une partition dos#
!xtS(s, comme tous les systmes ./01, accepte les types de (ichiers suivants###
les rpertoires : ensemble de (ichiers
les (ichiers ordinaires : pro*rammes, donnes, etc
les (ichiers spciaux : les priphri+ues, en mode caractres 2clavier, souris, etc4 ou
blocs 2DD,D<t4
"e (ile system accepte des noms lon*s 2S>6 car4, composs des caractres suivant :
7$D!@K;0RK"3/%8CR&T.?G1Pcabcde(*hi=<lmnop+rstuvHxyIJ1S6T>65U9#
0l est possible d'abuser du point, dans le but de commenter par exemple le type du (ichier 2une
Sylvain CHERRIER page 17 sur 100 Aout 2010
Cours Linux Version 0.7
sauve*arde d'un (ichier passHd Iippe pourrait -tre nomme passHd#old#I4
AviteI absolument le 9DBYZd et autres e, dont la *estion sera bien di((icile ensuite 2ima*ineI vous
devoir e((acer un (ichier nomm 9R( par exemple NNN4#
"e chemin d'accs ) un (ichier peut -tre soit relati( 2dpendant de la position actuelle, en utilisant
ventuellement # et ##4, soit absolu 2commen'ant donc par une r(rence ) la racine, le O4#
!n (ait, ) cha+ue (ichier, "inux 2et les autres unix4 (ont correspondre une inode# .ne inode est un
numro +ui dsi*ne le (ichier, son contenu 2du moins, la liste des blocs correspondant sur le
priphri+ue4 et ses attributs 2propritaire, droits, dates###4
&ur l'cran suivant, nous voyons le rsultat d'une commande ls 9il, +ui a((iche les in(ormations
concernant les (ichiers 2inodes, droits, propritaires, taille dates et noms4#
?ous remar+uereI les di((rences, puis+u'il y a des (ichiers spciaux#
?oir la commande ls 2option 7i pour inode4#
8our consulter les in(ormations d'une inode, utiliseI la commande stat 2pas trs standard, donc pas
automati+uement installe4#
Sylvain CHERRIER page 14 sur 100 Aout 2010
Cours Linux Version 0.7
"es droits sont *rs par les commandes suivantes :
chmod, chown et chgrp 2droits, propritaire, et *roupe4
voir les modes symboli+ue et arithmti+ues
voir le cas particulier des rpertoires NNN
dmonstration :
les utilisateurs pierre et sylvain appartiennent au *roupe pro(# "'utilisateur *uest appartient au *roupe
users# "e (ichier OtmpOessai existe, et est en lecture pour tout le monde# &achant +ue la commande
pHd nous a((iche Od1, complteI les tableaux suivants :
drHxr9xr99 S pierre pro( d1
9rH9rH9r99 1 pierre pro( d1O(1
commandes Pierre Sylvain guest
cp OtmpOessai (1
cp OtmpOessai (S
chmod 666 (1
rm (1
Sylvain CHERRIER page 16 sur 100 Aout 2010
Cours Linux Version 0.7
drHxr9xr9x S pierre pro( d1
9rH9r99r99 1 pierre pro( d1O(1
commandes Pierre Sylvain guest
cp OtmpOessai (1
cp OtmpOessai (S
chmod 666 (1
rm (1
drHxr9xr9x S pierre pro( d1
999999999 1 pierre pro( d1O(1
commandes Pierre Sylvain guest
cp OtmpOessai (1
cp OtmpOessai (S
chmod 666 (1
rm (1
6.a - Les liens
"es liens sont une solution l*ante ) divers problmes de maintenance des (ichiers, et de leurs
emplacements dans l'arborescence# 0l s'a*it en (ait d'une redirection d'un nom (icti( vers un (ichier
rel# Toute l'astuce consiste ) (aire correspondre ) un nom de (ichier l'inode du (ichier point#
"a cration d'un sosie de dvdplay#*i( se (ait par la commande ln nom sosie# "es deux noms
Sylvain CHERRIER page 20 sur 100 Aout 2010
Cours Linux Version 0.7
correspondent rellement au m-me contenu 2voir le numro d'inode4# Remar+ueI le S +ui apparaLt en
deuxime ar*ument du ls 9l# "e rm du premier (ichier n'e((ace +ue la correspondance entre ce nom et
l'inode# "'inode reste prsente tant +u'un nom pointe dessus# "e contenu ne sera supprime +ue
lors+ue le dernier nom de (ichier le sera# %n peut avoir autant de liens +ue voulu#
Cuestion : &i vous aveI compris ce +ue sont les monta*es, +uel problme peut on ima*iner si on lie
deux noms de (ichiers de deux (ile systme di((rents D Cuelle est la solution ) utiliser D 2man ln4
6.b - La commande find
$ette commande permet de rechercher un ou plusieurs (ichiers, selon des critres# 0l est m-me
possible de lancer des actions sur le rsultat 2e((acement, copie, etc4#
"a syntaxe est la suivante : (ind bcheminf bcritresf
les critres sont des expressions, +ui si elles donnent vrai, entraLne la slection du nom du (ichier : les
expressions sont des combinaisons des critres suivants :
Critres Explications
9name nom /om du (ichier recherch
9user nom "e propritaire du (ichier est nom
9*roup nom 3-me chose avec le *roupe
9type Rpond vrai selon le type de (ichier 2b pour bloc, c pour caractre, ( pour (ichier
et d pour rpertoire, l pour un lien4
9siIe taille &electionne si la taille correspond 2a utiliser avec V ou 9 pour plus *rand +ue ou
plus petit +ue, et c b < pour indi+uer l'unit de mesure de *randeur###4
9inum numero Donne tous les (ichiers portant ce numro d'inode
9atime numro
9mtime numro
9ctime numro
"e (ichier a t accd, modi(i ou cration il y ) moins de numro =ours# 2voir
aussi l'option daystart, +ui permet de partir de minuit et non de ST heures plus
tot###4
2expr 9or expr4
2expr 9and expr4
N expr
0l est possible de =ouer avec des et et des ou, en re*roupant les commandes dans
un ou plusieurs *roupes#
N inverse l'expression : N 9name toto veut dire +ui ne s'appelle pas toto#
.ne (ois les noms slectionns, il est possible
de les a((icher 2commande 9 print4
d'excuter une commande 29exec rm ag eh4
de d'interro*er l'utilisateur avant d'excuter la commande 29o< rm ag eh4
Sylvain CHERRIER page 21 sur 100 Aout 2010
Cours Linux Version 0.7
le ag indi+ue le nom de cha+ue (ichier trouv, et il (aut absolument (inir par eh 27TT!/T0%/ a
l'antslash, il vite +ue le bash ima*ine +ue le h le concerne NNN4Dans l'exemple, ='ai utilis rm, mais on
peut lancer n'importe +uel commande bien sMr# 8ar exemple, voici une commande +ui recherche tous
les pro*rammes sources en $, et +ui en (ait une copie 2#old4### find -name !"c! -exec cp
#$ #$old %& &re"5er"5e tous les 2i"5iers 'ui 2inissent par ."- et pour "5a"un !%eux- ex,"ute "opie
no en no.ol!...(
7) Les processus.
.nix est un systme d'exploitation multitEches multi9utilisateurs# .nix utilise plusieurs processus, +ui
s'enchaLnent les uns les autres, ou sont en concurrence# "e dmarra*e de la machine utilise ce
systme de processus +ui lance d'autres processus 2principe du bootstrap4#
7.a - Qu'est ce qu'un processus ?
.n processus est l'ima*e d'un pro*ramme en mmoire# "e pro*ramme est un (ichier binaire, c'est )
dire des commandes comprhensible par le processeur# 3alheureusement, ces commandes seules ne
su((isent pas, et votre pro*ramme s'appuie sur un ensemble d'in(ormations (ourni par le systme
d'exploitation# De m-me, lors de son excution, ce pro*ramme va utiliser un espace mmoire de
travail, et une pile 2endroit oX l'on stoc<e temporairement des donnes etOou des adresses, par
exemple lors+ue l'on excute une sous partie d'un pro*ramme 2adresse de retour44#
?elle ar@ores"en"e !e pro"essus- !%un login A une session B. Rear'ue. 'ue l%on voit la "oan!e en 'uestion &;top(
tourner- ainsi 'ue le logi"iel 'ui a peris !e "apturer l%,"ran &;snaps5ot(.
Sylvain CHERRIER page 22 sur 100 Aout 2010
Cours Linux Version 0.7
"'ensemble de ces in(ormations s'appelle un processus# !n rsum, un processus contient une Ione
utilisateur 2rpertoire courant, .0D, r(rences aux (ichiers4, une Ione de code 2le pro*ramme4, une
Ione de donnes 2Ione de travail4 et une Ione de pile 2paramtres passes entre di((rentes (onctions,
adresses de retour, variables stoc<es ) la vole et non mmorises###4
$ha+ue processus a un numro uni+ue, un lien vers son pre 2celui +ui l'a cre###4, un numro
utilisateur, de *roupe, la dure de traitement, sa priorit d'excution, la r(rence ) son rpertoire de
travail####
le premier processus +ui est lanc est init, +ui lance ensuite les suivants#### ?otre bash est le (ils de
votre lo*in, lui m-me (ils d'un *ettty sur votre terminal 2attente d'un connexion4, etc####
"ors+ue vous tapeI une commande, celle ci lance un nouveau processus, dont votre bash est le pre#
"a cration des processus est r*ie par le principe suivant# un processus cre un processus (ils, en
(or<ant 2appel systme de (or< 2(ourche4, +ui cre un double du processus pre, en lui donnant un
nouveau 80D4# .ne (ois le processus dupli+u, un appel systme exec lance le pro*ramme appel# "e
processus pre lui est en tat d'attente 2appel system Hait4# !xec, sur le processus (ils, e((ectue ce
+ue l'on appelle un 'recouvrement' : "e (ils, +ui tait un clone par(ait du pre 2a tel point +u'il (aut
(aire attention en tant +ue pro*rammeur, cha+ue processus croit -tre \ le vrai ] N4 doit se trans(ormer
en un autre pro*ramme 2c'est souvent ce +ue l'on veut (aire : =e suis dans un shell, =e veux lancer un
pin*, =e tape donc pin*: 3on processus d'ori*ine se ddouble 2le shell est donc dupli+u NN4# "e (ils
va ensuite se trans(ormer en pin* 2puis+ue c'est ce +ue l'on voulait, un pin*4, tandis +ue le pre 2le
vrai shell4 se met en attente de son (ils# Cuand le (ils aura termin, il le si*nalera ) son pre, +ui
pourra alors reprendre son execution#
7.b - Les tats d'un processus
R pour runnable
& pour &leepin*
D pour uninter# &leep 2attente !ntre &ortie4
c pour combie 2plus de pre, 'parti dans les choux NNN'4
7.c - Les tches de fond.
De par ce principe de multi tEches, il est possible de lancer une tEche en arrire plan, et de continuer
) travailler sur le terminal# 0l su((it de taper un B en (in de commande# "e numro du processus (ils
s'a((ichera, et l'appel systme au Hait est supprim# %n peut donc continuer ) travailler# 7ttention
cependant, les messa*es de sortie de la commande en arrire plan arriveront sur votre terminal###
%n appelle par(ois ce mode l'excution de processus asynchrone 2plus de dpendance de temps entre
le pre et le (ils4#
7ttention : "e (ait de vous dlo*uer arr-tera tous vos processus, dont ceux en tEches de (ond###
Sylvain CHERRIER page 2* sur 100 Aout 2010
Cours Linux Version 0.7
7.d - Manipulation des primitives du systme
B n'est pas la seule possibilit de modi(ier le comportement du systme multitEche de "inux# %n peut
aussi contrFler le (or< 2emp-cher le (or< de se (aire, c'est donc notre processus courant +ui sera
'recouvert'4# %n peut aussi, avec nohup, donner notre (ils ) un processus plus ancien 2dans la
prati+ue, nohup permet de lancer une commande +ui continuera ) s'excuter m-me aprs notre
dconnexion 2nous n'en sommes plus le pre44#
7.e - les processus diffrs
at permet le lancement de tEches ) une heure prcise# "e rsultat du =obs sera dans votre mail
2lancement par mail, lecture du mail par t, sortie par +4#
at accepte de multiples (a'on d'indi+uer l'heure 2par rapport ) maintenant, ) midi, ) minuit,
au=ourd'hui, demain, ou une date et une heure prcise 4 : noH, noon, midni*ht, today et tomorroH
suivi de V ou 9 +uel+ue chose comme hour, minute, ou bien directement 1U:JJ 3ay 1>, SJJJ4
exeple # !ans 1 inutes- un ls 7al !e tout "e 'ui "oen"e par l- puis une le"ture !u ail. Rear'ue. l%,"riture !e
la "oan!e at- ave" un passage A la ligne- et 2in !e saisie par l%5a@ituel CCRL D &E3E(.
"e cron permet +uand ) lui la pro*rammation de taches ) intervalles r*uliers# "a tache demand
sera lance automati+uement, sous l'identit d'un utilisateur, m-me si celui ci n'est pas connect###
"e (ichier est constitu de la (a'on suivante
in 5eure Four ois FourSeaine "oan!e
la cration et la *estion de ce (ichier se (ait par la commande suivante : crontab 9e 2pour diter4 ou 9l
pour l'a((icher###
Sylvain CHERRIER page 2/ sur 100 Aout 2010
Cours Linux Version 0.7
exemple de (ichier crontab 2en (ait, il s'a*it d'un (ichier portant le nom du user, ran* dans
OvarOspoolOcron4
00 04 G G 1 up!ate!@
*0 1/ 01 01 G s5ut!o:n 7r no:
) U heures, tous les samedi 26 eme =our de la semaine4, excution de updatedb 2base de donnes des
noms de (ichiers, consultable ensuite par locate#
le 1er =anvier de cha+ue anne, ) 1T;6J, redmarra*e de la machine###
7.f - les commandes.
%utre le B 2lancement en tache de (ond4, voici des commandes utiles pour la *estion des processus :
ps a((iche les in(ormations sur les processus 2option axl4
kill envoie un si*nal au processus 2permet aussi d'arr-ter la tache, selon le si*nal4
top a((iche ) intervalle r*ulier l'ensemble des taches
pstree a((iche une arborescence des taches
time permet de mesurer les temps d'excution
,obs a((iche les taches en (ond#
nice chan*e la priorit d'une tache
renice permet la *estion de la priorit 2m-me aprs son lancement4
sleep 'endort' une tache 2la suspend4
nohup vite ) une tache de (ond d'-tre tue par l'arr-t de son pre
bg et fg permet d'envoyer en (ond ou de rcuprer une tache de (ond en premier plan
wait met le processus courant en tat d'attente de ses (ils asynchrones
8) Les Files Systems
"inux reconnaLt de multiples @&# 0l est capable de travailler sur son @& de base 2actuellement extS(s4,
mais aussi sur les @& dos, v(at, et (at6S# /T@& est trait en lecture seulement 2problme d'accs ) la
Sylvain CHERRIER page 20 sur 100 Aout 2010
Cours Linux Version 0.7
&734####
8.a - les commandes
8.a.1) Le formatage de bas niveau (les disquettes)
0l s'a*it de la commande (d(ormat, suivi d'une device### 7TT!/T0%/ : 0l s'a*it d'un nom de device
plus complet +ue la normale : 0l (aut aussi indi+uer la capacit 2pour connaLtre le (ormat4# %n utilise
en *nral un pseudo nom 2(dJ;1TTJ, ou (dJu1TTJ4
8ar exemple : (d(ormat OdevO(d1u1TTJ
8.a.2) le formatage haut niveau (File System)
.ne (ois le support (ormat 2bas niveau4, on peut avoir besoin d'y dposer un (ile systme#, par
exemple msdos, ou extS(s# $e n'est ncessaire +ue si vous vouleI y *rer des (ichiers etOou des
rpertoires# "a commande m<(s permet de crer des (iles systmes, pourvu +ue vous disposieI du
driver appropri#
8ar exemple : mkfs -t ext2 /dev/fd0, ou mkfs -t msdos /dev/fd1
!n (ait, m<(s est un (rontal +ui va rechercher le pro*ramme m<(s#(s correspondant 2m<(s#msdos dans
le deuxime exemple4#
8our les tricheurs, vous pouveI utiliser les mcommandes, c'est ) dire le porta*e des commandes
msdos sous "inux# $itons m(ormat, mcopy +ui s'utilisent exactement comme leurs homolo*ues
3&D%&###
8.a.3) le montage
8our utiliser un support ma*nti+ue (ormat, vous alleI devoir le monter, c'est ) dire le (aire
apparaLtre ) un endroit +uelcon+ue de votre arborescence# ?ous alleI dsi*ner un rpertoire +ui,
aprs l'opration de monta*e, (era apparaLtre le contenu 2rpertoires et (ichiers4 du support
ma*nti+ue# !n *nral, le rpertoire Omnt est ddi ) ce *enre d'opration, et c'est pour+uoi on y
trouve deux sous rpertoires : (loppy et cdrom# ?ous pouveI cependant monter un (ile systme dans
n'importe +uel rpertoire, et ce ) cha+ue monta*e# $ela permet de multiples astuces d'administration#
Remar+ueI +ue c'est le principe employ pour rpartir vos donnes sur plusieurs partitions 2systme
souvent utilis dans les installations de serveurs4#
"a commande est la suivante
mount --t ./0 device rpertoire
Sylvain CHERRIER page 21 sur 100 Aout 2010
Cours Linux Version 0.7
1n petit schma explicatif du principe du montage
O Obin
Ousr
Oetc
Omnt
Otmp
Ovar
Une ar@ores"en"e
O Otmp
Otravaux
Osources
Une !is'uette- 'ui "ontient un Eile Systee...
O Obin
Ousr
Oetc
Omnt Otmp
Otravaux
Osources
Otmp
Ovar
Ar@ores"en"e r,sultante- aprHs la "oan!e mount /dev/fd' /mnt
8our lire une dis+uette dos et *rer son contenu dans OmntOd<t 2rpertoire cr pour l'occasion4
mount -t msdos devfd2 mntdos
$e rpertoire est maintenant li ) la dis+uette# &i ce rpertoire contenait des (ichiers etOou des sous
rpertoires, ceux ci seront mas+us par le nouveau @& mont# ?ous les rcuprereI au dmonta*e#
"ors +ue l'on veut enlever la dis+uette, il (aut la dmonter# 0l ne (aut plus +u'aucun processus ne
travaille sur ce rpertoire 2ni aucun shell NNN4# 0l su((it de taper umount suivi soit du priphri+ue, soit
du rpertoire###
umount devfd2
34oublie5 ,amais de dmonter un priphri+ue 666 .n (la* se lve dans le superbloc ) cha+ue
monta*e, et n'est baiss +u'au dmonta*e# !n cas de (la* rest lev, une vri(ication est
automati+uement lance# Remar+ueI ) ce propos la *estion des cd9roms par "inux : "e lecteur ne
s'ouvre pas tant +ue le cdrom est mont###
Sylvain CHERRIER page 27 sur 100 Aout 2010
Cours Linux Version 0.7
pour monter un $DR%3, utiliseI la commande suivante
mount -t iso7882 devhdc mntcdrom 2si votre lecteur cd est le master du secondary 0D!4
mount tout seul a((iche tout les monta*es en cours####
mount est une commande rserv ) root 2sau( indication particulire dans OetcO(stab###4
8.a.4) Rle de /etc/fstab
%n peut par(ois simpli(ier l'utilisation de mount *rEce ) OetcO(stab# $e (ichier contient l'ensemble des
monta*es ) e((ectuer en automati+ue, ou ) connaLtre# !n *nral, l'administrateur y a indi+u les
monta*es les plus courants# Rsultat : la (rappe de mount OmntO(loppy ou de mount OdevO(dJ su((it
pour monter la dis+uette
9!ev95!a* 9 ext2 !e2aults 1 1
9!ev95!a1 9!os" v2at !e2aults 0 0
9!ev95!@1 9!os! v2at !e2aults 0 0
9!ev95!@0 9!ose v2at !e2aults 0 0
9!ev95!a2 s:ap s:ap !e2aults 0 0
9!ev92!0 9nt92loppy auto syn"-user-noauto-nosui!-no!ev-un5i!e 0 0
9!ev9"!ro 9nt9"!ro auto user-noauto-nosui!-exe"-no!ev-ro 0 0
none 9pro" pro" !e2aults 0 0
Inone 9!ev9pts !evpts o!eJ0122 0 0
un exeple !e 9et"92sta@ # "5a'ue p,rip5,ri'ue- son point !e ontage 5a@ituel et son type !e ES apparaKt
8.a.5) Autres programmes associs
tuneS(s permet d'a((icher les in(ormations concernant un (ile systme extS(s# %n peut y contrFler la
taille des blocs, le nombre d'inodes, l'tat de la partition, la con(i*uration de contrFle 2nombre de
monta*e depuis la dernire vri(ication, vri(ication automati+ue tous les x monta*es, ou aprs telle
date###4# 7ttention, il est recommand de travailler sur une partition /%/ 3%/T!!, si l'on veut
pouvoir modi(ier les r*la*es#
tune22s !%une partition ont,e &ne pas 2aire !e o!i2 !ans "e "as )))( # "e 'ui expli'ue le not "lean...
Sylvain CHERRIER page 24 sur 100 Aout 2010
Cours Linux Version 0.7
8.a.6) le cas particulier du swap
"7 partition de sHap est utilis par "inux pour stoc<er temporairement des donnes lors+ue la
mmoire R73 est sature# %n peut utiliser soit un (ichier de sHap 2comme sous HindoHs4, ou plutFt
ce systme +ui est plus propre# "a partition de sHap peut -tre une partition tendue# &a taille ne peut
pas dpasser 1SU 3o 2mais il est possible d'avoir autant de partitions sHap +ue l'on veut4, et est
comprise habituellement entre 1 ) S (ois la taille de la R73#
8our crer une partition sHap, il (aut utiliser fdisk, et utiliser le type de partition US# $ette partition
doit ensuite -tre (ormate par la commande mkswap !evi"e# "'utilisation ou l'arr-t de ce sHap se (ait
par swapon !evi"e et swapoff !evi"e# !n *nral, tous ces r*la*es sont lancs automati+uement au
dmarra*e de la machine### ?oyeI ) ce propos le (ichier OetcO(stab###
8.b - File System, ou pas ?
0l n'est pas obli*atoire de crer un (ile systm sur un support# $e n'est utile +ue si vous vouleI *rer
plusieurs (ichiers sur ce support# &i il ne doit contenir +u'un seul ensemble de donnes, on peut
considrer +u'il est inutile de crer le (s#
8ar exemple, pour crer une dis+uette de boot "inux, il su((it de :cracher: le noyau "inux sur la
dis+uette# "a commande +ui permet d'crire en direct est dd 2dis< dump4# &es ar*uments important
sont i( 2input (ile : l'entre4 et o( 2output (ile : la sortie4# %n peut prciser bs 2bloc< siIe, taille du
bloc4 et count 2+ui permet de limiter ) un certain nombre de blocs4#
Sylvain CHERRIER page 26 sur 100 Aout 2010
Cours Linux Version 0.7
8etits exemples :
$opions un noyau "inux 2vmlinuI, situ dans le rpertoire Oboot4 sur une dis+uette, a(in de booter le
systeme### "'option bs correspond ) la taille d'une piste d'une dis+uette : "a copie est alors plus
rapide###
dd if=/boot/vmlinuz of=/dev/fd0 bs=18k
l'+uivalent d'un D0&K$%8P 7: 7: de 3&9D%& se ralise via un (ichier temporaire#
dd if=/dev/fd0 of=/tmp/copydkt bs=18k
dd if=/tmp/copydkt of=/dev/fd0 bs=18k
$e systme peut sembler lourd, mais pour apprcier sa puissance, remar+ueI +ue l'on peut ensuite
dupli+uer l'ima*e ) volont 2Sme li*ne seulement4# D'autre part, il est possible des (aire des dd de
n'importe +uel support 2partition, dis+ue dur complet, cd, dvd###4 vers n'importe +uoi 2(ichier,
partition, dis+ue dur, cd###4 8ar exemple, pour copier la 3R, utiliseI dd sur les >1S premiers
caractres du dis+ue dur :
dd if=/dev/hda of=savMBR bs=512 count=1
8.c - File System ou pas (suite)
3aintenant +ue nous doutons de l'utilit d'un (ile systme sur un support, inversons notre propos# !t
pour+uoi ne pas crer un (ichier, +ui contient lui m-me un (ile systme 2c'est ) dire une or*anisation
de rpertoires et de (ichiers4#
Dans un but pda*o*i+ue, crons un tel (ichier
tout d'abord crons un (ichier d'une taille dtermine 2admettons un m*a octet4
dd if=/dev/zero of=/tmp/fichierFS bs=1k count=1024
la device OdevOIero est une des petites (avorites : !lle (ournit une in(init de Iro# !lle a une petite
soeur, OdevOnull, connue sous le nom de trou noir, +ui avale tout ce +ui y est copi 2vous connaisseI
certainement son utilit pour supprimer les messa*es d'erreurs###4
$rons maintenant un @ile &ystem dedans NNNN
mke2fs -F /tmp/fichierFS
"e 9@ permet de (orcer la cration du @&, bien +u'il ne s'a*isse pas d'un priphri+ue bloc#
crons un rpertoire point de monta*e, et montons le (ichier @ile&ystem dedans
mkdir /FSFile
mount -o loop /tmp/fichierFS /FSFile
l'astuce repose sur l'utilisation de l'option loop, +ui permet cette acrobatie# !lle peut prendre des
options 2crypta*e###4
et maintenant, amusons nous un peu
cd /FSFile
mkdir toto titi
touch fic1 /titi/fic1 /titi/fic2
ls \R
cela (onctionne par(aitement# 0l (audra ensuite dmonter O@&@ile
Sylvain CHERRIER page *0 sur 100 Aout 2010
Cours Linux Version 0.7
/oteI en(in +ue ce systme est utilis couramment dans les installations de "inux : "a deuxime
dis+uette d'install 2la root4 contient en (ait un tel (ichier Iipp 21,S 3*a%ctet4# &i vous le dIippeI,
et +ue vous le mounter, vous trouvereI une arborescence complte .nix, contenant les binaires
ncessaire ) l'installation# $ela sert aussi ) crypter tout un (ile system 2man mount4
Un 2ile systH !ans un autre- ou pour'uoi 2aire siple 'uan! on peut 2aire "opli'u,....
Sylvain CHERRIER page *1 sur 100 Aout 2010
Cours Linux Version 0.7
9) Sauvegardes et Packages
"inux, comme tous les unix, o((re de outils de sauve*arde de (ichiers# $es systmes permettent la
cration de (ichiers archives, +ui permettront aussi l'chan*e de lo*iciels complet 2pac<a*e4# 0l existe
aussi des outils spci(i+ues pour la *estion des pac<a*es 2a=out et suppression de lo*iciels4
9.a - dd
nous venons de voir dd, +ui permet la cration de copies physi+ues# $et outil est asseI satis(aisant
pour le travail de bas niveau 2cration d'ima*e dis+ues, duplicata de partition complte4, mais n'est
pas tou=ours prati+ue 2la copie d'une partition (ait la taille de cette partition, m-me si elle est utilise
) 1J`4# 8ar contre, dd rcupre une ima*e stricte, ce +ui permet de dupli+uer m-me des (ile system
inconnus###
9.b - tar
tar est une commande trs courante, raccourci de Tape 7rchiver#
Tar permet la cration de sauve*arde d'une liste de (ichier soit dans un (ichier archive, soit sur un
support 2OdevO(dJ par exemple4# .n de ses avanta*es est sa rcursivit# 0l peut descendre dans les
sous rpertoires#
(es options de tar effets
cc $rer une archive
tt Test une archive
xx !xtrait le contenu de l'archive
vv 3ode verbeux
(( l'ar*ument suivant sera le nom du (ichier archive 2r*ulier, ou spcial###4
II l'ensemble est compress 2par *Iip4
3 &auve*arde en multi volume 2prati+ue si l'archive est plus *rande +ue le support
amovible4
l'utilisation de tar est la suivante :
tar option -fichier archive0 -liste des fichiers 9 sauvegarder0
par exemple, sauve*ardons l'ensemble des home directory sur la dis+uette 2sans (ile systm : la
dis+uette n'est donc pas monte NNN4
tar cvf /dev/fd0 /home
m-me chose pour une archive Iippe, place cette (ois ci dans Otmp
tar cvzf /tmp/archive.tgz /home
remar+ueI l'extension #t*I, +ui permet de comprendre +u'il s'a*it d'un tar Iipp 2mais en cas de
doute, utiliser tou=ours (ile4
test d'une archive
tar tvzf /essai/sav/tgz
restauration de l'archive situ sur la dis+uette 2nom monte NN4
tar xvf /dev/fd0
7ttention : 8uis+u'il est rcursi(, tar mmorise le chemin d'accs au (ichier, selon l'endroit du+uel il a
t lanc### ?ri(ieI tou=ours ce +ue l'archive contient, avant de l'extraire, ce a(in d'viter +ue les
(ichiers se restaurent n'importe ou NNN
Sylvain CHERRIER page *2 sur 100 Aout 2010
Cours Linux Version 0.7
"r,ation !%une ar"5ive .ipp,e &enregistr,e !ans 9tp( !u r,pertoire "ourant...
"'utilisation d'une telle archive impose ) la personne +ui la rcupre de crer un rpertoire pour y
dposer les (ichiers#
aprHs un test- l%utilisateur s%aperLoit 'ue les 2i"5iers sont sto";,s !ire"teent !ans l%ar"5ive. Il !,"i!e !on" !e "r,er
un sous r,pertoire pour y !,"opa"ter l%ar"5ive
Trs souvent, on pr(re se positionner au dessus du rpertoire ) sauve*arder, a(in de mmoriser le
Sylvain CHERRIER page ** sur 100 Aout 2010
Cours Linux Version 0.7
chemin, ou une partie du chemin, dans l'archive# 7 la rcupration, cela crera automati+uement les
rpertoires voulus####
2i"5iers sauv,s- ave" leurs "5eins...
8our rcuprer le contenu de cette archive, l'utilisateur pourra se positionner dans O, et extraire le
contenu###
%utre les sauve*ardes, tar sert aussi ) la di((usion des produits# %n appelle ces versions des tarballs#
"es versions de la &lac<Hare sont ) l'ori*ine distribues de la sorte###
9.c - cpio
cette commande sert aussi pour la *estion des donnes# "'option 9o cr des sauve*ardes, tandis +ue
9i restaure les archives###
cpio est plus e((icace +ue tar en cas de ppin sur la sauve*arde 2dis+uette problmati+ue, pb de
bandes###4#
!n mode cration de sauve*arde, cpio attend une liste de (ichiers sur son entre standard# %n utilise
par exemple des pipes pour l'alimenter# "e (ichier archive sort sur sa sortie standard### 7 vous de le
rediri*er, par exemple dans un (ichier#
!n mode restauration, cpio attend un (ichier archive sur son entre standard, et restaure dans le
rpertoire courant#
!xemple
cration d'une archive#t*I
ls | cpio -o >/tmp/toto.cpio
la liste des (ichiers du rpertoire courant est donne ) cpio, +ui cre alors une archive OtmpOtoto#cpio
restauration
cpio -i </tmp/toto.cpio
dplacement de rpertoire
(cd /root ; ls | cpio -o ) | cpio -i
Sylvain CHERRIER page */ sur 100 Aout 2010
Cours Linux Version 0.7
9.d - Les packages
"a distribution des lo*iciels est souvent or*anises sous (orme de pac<a*es# "'intr-t du systme est
d'automatiser l'installation, en int*rant l'ensemble des (ichiers ncessaires, les divers emplacements
de copie, ainsi ventuellement +u'une vri(ication de la prsence d'autres pac<a*es indispensables###
De plus, certains outils sont distribus sous (orme de binaires 2compils donc pour un processeur
prcis, avec des appels ) certaines librairies, etc###4, par(ois sous (orme de sources ) recompiler###
"'essor de "inux, et des diverses distributions utilises, a donn lieu ) la cration de plusieurs
systmes de pac<a*es# %n trouve ainsi des pac<a*es sous (ormat tarball 2des t*I4, ou sous (ormat
rpm 2Red hat 8ac<a*e 3ana*er4, voire encore sous le (ormat Debian 2D!4###
!n ce +ui concerne les tarballs, reporteI vous ) la commande tar, plus haut# 0l n'y a pas de
vri(ication des dpendances### TesteI d'abord l'archive, puis dcompacteI l), et chercheI la doc
2R!7D3!, ou encore install###4
9.d.1) RPM
!n ce +ui concerne les rpms, un processus de vri(ication permettra de s'assurer +ue les ressources
ncessaires sont bien prsentes sur la machine# "e principe du rpm est d'utiliser une base de donnes
+ui contient la liste des pac<a*es installs, et permet la vri(ication des dpendances###
la commande rpm permet l'installation, la mise ) =our ou la suppression des pac<a*es installs###
rpm -i -package0 permet d'installer un pac<a*e 2souvent ivh, vri(ication plus hashin*4
rpm -1 -package0 met ) =our un pac<a*e d=) prsent###
rpm -+ -options0 interro*e la base de donnes de pac<a*es installs###
le ;pa";age- 'ui interroge les pa";ages install,s...
$omme tou=ours, l'outil manuel est trs e((icace# 0l existe cependant une version *raphi+ue trs
simpli(i# &ous KD!, il s'a*it de <pac<a*e# 0l peut -tre invo+u de deux (a'ons : soit en cli+uant sur
Sylvain CHERRIER page *0 sur 100 Aout 2010
Cours Linux Version 0.7
un pac<a*e : lancement automati+ue de <pac<a*e, avec possibilits d'installer le pac<a*e, soit en
lan'ant <pac<a*e, et en indi+uant l'endroit ou sont les pac<a*es non installs# $ha+ue environnement
*raphi+ue o((re un (rontal pour ces installeurs###
9.d.2) DEBIAN
l'installation sous Debian et ses drivs utilisent un ensemble d'outils dont la base est dp<*
2l'installateur en lui m-me4 et divers (rontaux 2de dselect ) apt9*et4#
"es (ichiers ) installer sont sous (ormat #deb#
dpkg -i pa";age#!e@ lance l'installation de ce pac<a*e, en ran*eant tout au bon endroit et en mettant
) =our la base de donnes de votre machine### dpkg 9r pa";age le desinstalle, tandis +ue dpkg -i -R
rpertoire lance l'installation de tous les pac<a*es contenus dans le rpertoire# "'intr-t de cet outil
est sa puissance, puis+u'il tente de vri(ier les dpendances, et d'installer en cons+uence# &i mal*r
tous les tests, votre installation s'interrompt pour cause de dpendances non satis(aites, il est possible
de relancer la (in d'installation d'un pac<a*e +ui resterait inaboutie, avec dpkg --configure pa";age#
8our (inir l'installation d'un ensemble de pac<a*e +ui se serait plant, utiliseI dpkg --configure
--pending.
7utres options : -l pour lister les pac<a*es installs sur votre machine, -: pac<a*e pour lister les
(ichiers mis en =eu par ce pac<a*e, -/ (ichier pour retrouver de +uel pac<a*e dpend le (ichier, et
en(in -! pa";age#!e@ pour rcuprer des in(ormations dtailles sur le pac<a*e en +uestion###
apt-get est un (rontal trs simple +ui permet la maintenance et la mise ) =our de votre systme# $e
pro*ramme interro*e un (ichier +ui s'appelle sour"es#list, +ui lui indi+ue ou il trouvera les donnes
d'installation standard 2en *nral, les $D, ou un serveur dans votre rseau, voire m-me les serveurs
Debian NNN4# 0l interro*era ensuite la base de donnes des installations et vous demandera d'introduire
les $ds correspondant, ou se connectera au seveur voulu#
;pt-get install pa";age lance l'installation de ce pac<a*e, aprs vri(ication des dpendances, et de
la pertinence de cet installation 2numro de version4#
;pt-get remove pa";age l'enlve#
;pt-get update met ) =our l'installation, et apt-get dist-upgrade se connecte sur les serveurs, et
met ) =our tous les pac<a*es ) partir des serveurs Debian###
apt-get source pa";age rcupre les sources du pac<a*e voulu###
7ttention, apt9*et :rouspte: si vous aveI (ait des installations :sauva*es:###
!n(in pour connaLtre 2un peu4 les pac<a*es disponibles, vous pouveI utiliser apt-cache, et
notamment son option search +ui interro*e la base de donnes en comparant avec le mot cle(
(ourni###
;ptitude est peut -tre plus interessant, car il re*roupe toutes les commandes 2contrairement ) apt9
*et, sear"5 (ait partie des commandes d'aptitude4# 0l *re aussi mieux les problmes de dpendance#
!n(in, en mode *raphi+ue, de nombreux outils permettent la *estion des pa+uets 2synaptic sous
*nome, <adept sous <de, etc###4
10) La gestion des utilisateurs
&ous "inux, comme sous tous .nix, et autres systmes multi utilisateurs, vous deveI *rer des
utilisateurs et des *roupes# "a scurit du systme est base sur l'identi(ication de l'utilisateur, et des
droits +ui lui sont associs###
"a scurit est bas sur deux voire trois (ichiers# 0l s'a*it de OetcOpassHd 2+ui contient la liste des
utilisateurs, de leur nom, de leur home directory###4, de OetcOshadoHs 2+ui contient les mots de passe
en crypt, et +ui n'est accessible +u'au root4, et de OetcO*roups +ui contient le code et le nom des
*roupe#
Sylvain CHERRIER page *1 sur 100 Aout 2010
Cours Linux Version 0.7
.n utilisateur est d(ini par son 0D 2un numro4# Root a le numro J# &ouvent, les simples
utilisateurs ont un numro suprieur ) 1JJ# "'utilisateur a un *roupe par d(aut# .n *roupe est d(ini
par son numro 2le K0D4# 0l peut re*rouper plusieurs users# "e systme s'arr-te l)# ?ous retrouveI
ces notions dans la *estion des (ichiers 2user, *roup et other4#
10.a - /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
lists:x:500:500:BeroList:/dev/null:/dev/null
gdm:x:42:42::/home/gdm:/bin/bash
xfs:x:100:102:X Font Server:/etc/X11/fs:/bin/false
sylvain:x:501:501:Sylvain Cherrier:/home/sylvain:/bin/bash
jeux:x:1002:1002:Connexion pour les jeux:/home/jeux:/bin/bash
les champs de ce (ichier sont les suivant :
lo*in:mot de passe crypt 2ou x si shadoH acti(s4:0Denti(iant :Kroup 0denti(iant:/om en clair
2Kecos4:;ome directory:pro*ramme lanc ) la connexion
$ertains users sont des pseudo utilisateur, +ui servent au lancement de pro*ramme ou pour la
scurit 2x(s, (tp, shutdoHn, lists, halt4#
10.b - /etc/group
$e (ichier contient la liste des *roupes# %n y trouve son nom, suivi du mot de passe du *roupe 2trs
peu utilis4, puis le Kroup 0denti(ieur 2+ui est repris dans OetcOpassHd4, et en(in la liste des users
appartiennent au *roupe###
"a +uestion souvent pose est la suivante : comment (aire pour +u'un utilisateur appartienne )
plusieurs *roupes D
Rponse : root appartient aux *roupes suivant :
le *roupe J 2d'aprs OetcOpassHd, c'est donc son *roupe par d(aut, et il s'a*it du *roupe root4#
"es *roupes bin, daemon, sys, adm, dis<, Hheel, etc### puis+u'il apparaLt dans le dernier champ
dans OetcO*roup 2*roupes additionnels4
root::0:root
bin::1:root,bin,daemon
Sylvain CHERRIER page *7 sur 100 Aout 2010
Cours Linux Version 0.7
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon
tty::5:
disk::6:root
lp::7:daemon,lp
mem::8:
kmem::9:
wheel::10:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:
games::20:
gopher::30:
dip::40:
ftp::50:
nobody::99:
users::100:
utmp:x:101:
lists:x:500:
floppy:x:19:
console:x:11:
gdm:x:42:
xfs:x:102:
pppusers:x:230:
popusers:x:231:
slipusers:x:232:
slocate:x:21:
sylvain::501:
audio:x:60:
jeux:x:1002:
10.c - /etc/shadow
(ichier privil*i, +ui contient les mots de passe crypts, et +ui n'est accessible +u') root
root:$1$npqvHBzG$okPjWk/:10853:0:99999:7:::134542424
bin:*:10853:0:99999:7:::
daemon:*:10853:0:99999:7:::
adm:*:10853:0:99999:7:::
lp:*:10853:0:99999:7:::
sync:*:10853:0:99999:7:::
shutdown:*:10853:0:99999:7:::
halt:*:10853:0:99999:7:::
mail:*:10853:0:99999:7:::
news:*:10853:0:99999:7:::
uucp:*:10853:0:99999:7:::
operator:*:10853:0:99999:7:::
games:*:10853:0:99999:7:::
gopher:*:10853:0:99999:7:::
ftp:*:10853:0:99999:7:::
nobody:*:10853:0:99999:7:::
lists:!!:10853:0:99999:7:::
gdm:!!:10853:0:99999:7:::
xfs:!!:10853:0:99999:7:::
sylvain:LBiacHdehApY5.:10853:0:99999:7:::
jeux:2vbmkHtB4t5CPA:10955:0::7:::
Sylvain CHERRIER page *4 sur 100 Aout 2010
Cours Linux Version 0.7
"a *estion des utilisateurs peut de (aire de deux manires : en direct dans les (ichiers 2avec votre
diteur pr(r4, ou bien en passant par un (rontal#
;abituellement, on trouve un utilitaire +ui s'appelle useradd, et +ui permet d'-tre *uid en mode
texte# 7dduser permet d'entrer dynami+uement un utilisateur# Depuis peu, certaines distributions
prennent la libert d'a=outer d'autres outils 2bonne ide4, et supprime les outils standards 2mauvaise
ide4# $'est pour+uoi vous pouveI tomber sur usercon( 2sur Red;at et 3andra<e4# 0l existe aussi des
outils *raphi+ues 2sous KD!4#
OetcOs<el est un rpertoire +ui (ournit une con(i* par d(aut pour les utilisateurs nouvellement crs#
?ous pouveI modi(ier son contenu, selon vos besoins###
Sylvain CHERRIER page *6 sur 100 Aout 2010
Cours Linux Version 0.7
11) Ies scripts SHELL
"e &hell est un interprteur de commandes# "ors+ue vous tapeI une commande, il e((ectue
di((rentes oprations et trans(ert la commande interprte au noyau du systme d'exploitation pour
excution# Dans le cas oX la commande est simple, il su((it de la taper directement aprs le prompt
2ie : en li*ne de commande4# 3ais par(ois une commande ncessite plusieurs ar*uments, des tests et
des redirections, au+uel cas il est pr(rable d'crire un pro*ramme# $e pro*ramme est en (ait un
simple (ichier texte +ui contient une suite de commande .nix# 0l doit -tre excutable 2bit x activ4#
.tiliseI l'a*rable vi pour parvenir ) vos (ins#
$e chapitre prsente la (a'on dont est structur un pro*ramme &hell et les structures aux+uelles il
(ait appel# 8lusieurs exemples de pro*rammes &hell seront proposs en (in de chapitre a(in d'illustrer
ces propos#
7vant de s'atta+uer au problme des scripts, allons plus loin en ce +ui concerne le shell interacti(#
11.a - Les jokers
$omme vous l'aveI certainement remar+u, le shell *re ce +ue l'on appelle des caractres =o<er#
$'est lui +ui ) la char*e de convertir ces =o<ers en noms de (ichiers, +u'il passera alors aux
commandes invo+ues#
$ ls
toto
titi
tutu
si je tape la commande cp * /mnt/dkt (afin de copier ces fichiers sur la disquette), c'est le shell qui
s'occupera du remplacement par les noms des fichiers. En aucun cas, la commande cp n'a grer le
joker *.
$ cp * /mnt/dkt
(le shell transforme cette ligne en cp toto titi tutu
/mnt/dkt)
)o*er r+le exemple
d Remplacement d'une chaLne de J ) n
caractres
ls ab<
a@1 a@2 a@* a@/ a@10
a@@aye.5tl a@out.txt
D Remplacement strict d'un caractre ls ab=
a@1 a@2 a@* a@/
bxyIf D(init un ensemble 2ici x y et I4 ls ab-)>?@A0
a@1 a@*
bx9If !nsemble de x ) I ls ab-)->0=
a@10
bNx9yf Tout sau( l'ensemble de x ) y ls ab-6)->0<
a@/ a@@aye.5tl a@out.txt
Sylvain CHERRIER page /0 sur 100 Aout 2010
Cours Linux Version 0.7
11.b - Le quoting, la dspcialisation et l'valuation
Il s'agit ici de mettre en place des protections face l'interprteur du shell. Selon les cas, on peut
vouloir (ou ne pas vouloir) bloquer cet automatisme de replacement.
$ ls *
toto titi tutu
$ echo utilisez * pour tout remplacer
utilisez toto titi tutu pour tout remplacer
!mbtant, non D 8our parer ) ce problme, vous alleI pouvoir dspcialiser les caractres spciaux
2c'est ) dire les rendre inacti(s4
8remire solution : l'chappement# "'utilisation de l'antslash permet d'inactiver 2de dspcialiser4 le
caractre +ui suit#
$ echo utilisez \* pour tout remplacer
utilisez * pour tout remplacer
Trs e((icace, mais sachant +ue d i : ' et D peuvent ou seront interprts, ce systme peut
rapidement devenir lourd# &i par exemple vous deveI a((icher la phrase suivante : G M N % et O
sont interpr,t,s P o;ay O, voici ce +ue vous devrieI taper :
$ echo \* \~ \' et \? sont interprts \; okay \?
"es apostrophes sont l) pour vous aider : mais attention : il en existe 6 sortes : les simples +uotes 2'4,
les doubles 2:4 et les inverses 2j4
les simples blo+uent tout, sau( elles m-mes 2sinon comment s'arr-ter D4
^ echo '* ~ et ? sont nos amies...'
les doubles blo+uent tout sau( ^ et e et elles m-me bien sMr# !lles servent donc ) imprimer '#
"es inverses permettent au contraire de (orcer l'valuation# "'interprtation de la chaLne sera (orce
2prati+ue pour mlan*er des textes et des rsultats de commandes###4
Sylvain CHERRIER page /1 sur 100 Aout 2010
Cours Linux Version 0.7
Des expressions 'ui apostrop5ent....
11.c - laboration d'un programme SHELL
11.c.1) Procdures suivre
1# 0l est bon 2mais pas indispensable4 de mettre l'instruction suivante en premire li*ne du
pro*ramme :
B6binbash
$ela indi+ue ) l'interprteur +ue ce +ui va suivre est du &hell 2en l'occurrence du ourne
7*ain &hell 9 bash4#
S# "e (ichier contenant le code doit -tre rendu excutable avant de lancer le pro*ramme# %u
alors, il (aut le lancer en ar*ument d'un shell 2^ bash ./prog14
6# 8our lancer le pro*ramme, il (aut taper la li*ne suivante :
C prog si votre variable 87T; int*re le chemin du rpertoire dans le+uel vous lanceI
le pro*ramme
C . prog &inon###
C sh .prog 7u cas ou le (ichier ne soit pas excutable####
11.d - Les arguments
$omme tous pro*rammes, les scripts acceptent des ar*uments# 8our rcuprer et traiter le contenu
de ces ar*uments dans vos scripts, vous utilisereI le si*ne ^
C) contient le premier ar*ument, C( le second, et ainsi de suite, =us+u') 7#
C< ou CD indi+ue tous les ar*uments###
C2 indi+ue le pro*ramme lui m-me###
CB renvoie le nombre d'ar*uments passs ) la commande#
Sylvain CHERRIER page /2 sur 100 Aout 2010
Cours Linux Version 0.7
11.e - Les variables
Dans vos pro*rammes, vous aureI par(ois besoin de stoc<er des valeurs# ?ous pourreI alors crer
des variables 2non typs4# .ne variable a un nom# "'a((ection se (ait en utilisant l'oprateur Q sans
espace autour# "'utilisation du contenu de la variable se (ait en a=outant ^ devant#
"e passionnant prograe a22i"5e son no suivi !e son arguent. Rear'ue. "oe le "ontenu !es varia@les est
per!u...
7ttention cependant au notion de visibilit de la variable# .ne variable n'est valable +u') l'intrieur du
shell ou elle est excute# "ors+ue le sous shell rend la main, la variable est perdue 2ou alors, il (aut
(aire excuter le shell par le shell courant, *rEce ) # 4#
0l est possible de prot*er le nom de la variable *rEce aux accolades
$ MOT=chat
$ echo le pluriel de $MOT est ${MOT}s
le pluriel de chat est chats
&i vous vouleI a((ecter une chaLne de plusieurs mots ) une variable, prot*eI la avec des *uillemets#
NOM="Cherrier Sylvain Claude Philippe"
echo $NOM
Cherrier Sylvain Claude Philippe
11.e.1) la commande export.
7utre problme, la visibilit des variables### $omme pour d'autres lan*a*es de pro*rammation, les
variables ont une certaine porte, et ne sont utilisables +ue selon certaines r*les# !n *nral, une
variable est utilisable dans le shell courant### !lle ne le sera pas pour un processus (ils### &i on veut la
rendre accessible ) tous les (ils, il (aut l'exporter###
Exeple !e port,e !%un varia@le QC3C3... Si elle est export,e- elle est a""essi@le !ans les sous s5ells...
Sylvain CHERRIER page /* sur 100 Aout 2010
Cours Linux Version 0.7
11.e.2) La commande set
"ors de la conception d'un pro*ramme il est trs utile de voir s'a((icher les instructions excutes# "a
commande set4 +ui est interne au shell 2built in command4 permet de raliser cela#
Syntaxe
set --efnvx -ar*##00 (Il existe d'autre options la commande set)
set -e sort ds +ue la premire commande retourne le statut (aux 2il (aut -tre en mode non9
interacti(4#
set -f permet d'i*norer les mta9caractres
set -n lit les commandes mais ne les excute pas
set -v a((iche les li*nes shell telles +u'elles sont lues, avant de les excuter#
set -x a((iche les commandes et leurs ar*uments telles +u'elles sont excutes 2elles ont d=)
t lues et interprtes4#
!xemples
$ cat programme
#!/bin/bash
wc $1
pwd
$ sh -x programme fic1
sh -x programme fic1
+ sh -x programme fic1
+ wc fic1
12 432 235 fic1
+ pwd
/user/fred/src/html/
$ sh -n programme fic1
sh -n programme fic1
+ sh -n programme fic1
"'option 9n n'a pas beaucoup d'intr-t ici car le pro*ramme n'est pas excut, or c'est ) l'intrieur de
celui9ci +ue se trouvent les commandes pertinentes#
Sylvain CHERRIER page // sur 100 Aout 2010
Cours Linux Version 0.7
Remarques
8our annuler toutes les options de la commande set, tapeI : set 9
Toutes les options donnes ) l'invocation du shell 2^ set 9x par exemple4 sont conserves dans
la variable C-
$echo $-
imxH
set peut aussi servir ) l'intrieur de script pour remplir les variables 1 S 6 etc# &olution
par(ois trs prati+ue pour *rer ensuite le dcoupa*e des rsultats d'une commande#
^ set `date` ; echo "nous sommes le $3 $2"
nous sommes le 20 fv
11.f - La commande read
$ette commande permet la saisie au clavier 2ou plutFt l'entre standard4 pour le rensei*nement des
variable# "a commande read lit la li*ne et remplit 2selon le sparateur4 toutes les variables# &i le
nombre de mot est suprieur au nombre de variable, c'est la dernire variable +ui contient toute la (in
de la li*ne# &i il y a plus de variable +ue de rponses, les variables en trop ne sont pas d(inies###
^ echo "nom prnom" ; read nom prnom
nom prnom CHERRIER Sylvain
$ echo $prenom $nom
Sylvain CHERRIER
^ echo "nom prnom" ; read nom prnom
nom prnom Baron SALIERE Alphonse Edouard
$ echo $prenom ; echo $nom
SALIERE Alphonse Edouard
Baron
11.g - La commande test :
11.h - Syntaxe
test expression
ou
[ expression ]
"a commande test value expression , et retourne le rsultat de cette expression 2vrai ou (aux4#
&i aucune expression n'est donne alors le rsultat retourn prend la valeur (aux#
Dans le cas de l'utilisation avec les crochets , il (aut bien penser ) mettre des espaces entre
expression et les crochets b et f#
11.h.1) Les tests sur les nombres
b i -e+ = f : est vrai si i est *al ) = 2i et = sont des entiers4 e+ual
b i -ne = f : est vrai si i est di((rent de = never
b i -gt = f : est vrai si i est suprieur ) = Kreater than
b i -lt = f : est vrai si i est in(rieur ) = "ess than
b i -ge = f : est vrai si i est suprieur ou *al ) = Kreater or e+ual
b i -le = f : est vrai si i est in(rieur ou *al ) = "ess or e+ual
Sylvain CHERRIER page /0 sur 100 Aout 2010
Cours Linux Version 0.7
11.h.2) Les tests sur les chanes
test chaLne vrai si chaLne n'est pas la chaLne nulle
test -5 chaLne vrai si chaLne est vide 2J caractre4
test chaLne1 E chaLneS vrai si chaLne1 et chaLneS sont identi+ues
test chaLne1 6E chaLneS vrai si chaLne1 et chaLneS sont di((rentes
11.h.3) Les tests sur les fichiers
test -w, -r, -x2i"5ier
vrai si 2i"5ier existe et est autoris en criture, lecture ou est excutable
2respectivement4
test 9d 2i"5ier vrai si 2i"5ier existe et est un rpertoire
test 9f 2i"5ier vrai si 2i"5ier existe et n'est pas un rpertoire
test 9s 2i"5ier vrai si 2i"5ier existe et a une taille non nulle
11.h.4) Exemples de tests
Un test peut tre effectu sur les variables ou sur un fichier.
Le rsultat (vrai-faux;0 ou 1),est gnralement utilis pour
prendre une dcision l'intrieur d'une structure de contrle.
(if test then ....)
TESTS SUR LES VARIABLES
Exemples de tests:
1)La variable 3 contient-elle quelque chose?
test -n $3
2)La variable LOGNAME est-elle gale "bernard"?
test $LOGNAME="bernard"

LOGNAME est une variable d'environnement ,il faut la taper en majuscule.
Idem pour les variables HOME, PATH, TERM
3)$? donne le code retour de la dernire commande. Si le rsultat donne 0
alors la commande s'est droule sans erreurs.Sinon le rsultat est 1.
Pour connatre la valeur du code, il faut entrer en ligne de commande:
echo $?
L'exemple suivant test si le rpertoire /usr existe. Echo affiche le
code de retour./usr existe alors il affiche 0.
test -d /usr/;echo $?
0

4)L'exemple suivant test si le nombre d'argument ($#)n'est pas
gale 1.Si le test est vrai alors il affiche la syntaxe usage et
sort du script avec exit.
if [ $# != 1 ];then
echo "usage:$0 \"nom_utilisateur\""
exit
Sylvain CHERRIER page /1 sur 100 Aout 2010
Cours Linux Version 0.7
fi

11.i - Les structures de contrle
11.i.1) Dfinition
"es structures de contrFles d'un &hell sont des commandes internes +ui permettent d'imbri+uer
plusieurs commandes et (abri+uer ainsi un bloc# $e bloc est vu ensuite comme une simple
commande#
%n pourra ainsi rediri*er le rsultat d'un bloc vers une sortie +uelcon+ue comme on le (ait d=) avec
une commande uni+ue#
"es structures de contrFle, comme leur nom l'indi+ue, permettent d'e((ectuer des tests 2ou contrFles4
sur les ar*uments passs et ra*issent en (onction de ces test#
11.i.2) La structure for
"a structure de contrFle (or est utilise pour excuter des commandes avec une liste d'ar*uments#
Syntaxe
for var [ in liste ]
do
commande1
commande2
...
done
oX var est le nom d'une variable et liste est la liste des valeurs +ue prendra cette variable#
Exemple
ls *.html
essai.html intro.html fin.html
cat prog
#!/bin/bash
for nom in *.html
do
cp $nom /user/asi98/$1/src/
echo "fichier $nom copi dans $1"
done
$ prog julien
fichier essai.html copi dans julien
fichier intro.html copi dans julien
fichier fin.html copi dans julien
Remarque
&i la liste n'est pas indi+ue, alors c'est la liste des ventuels ar*uments du pro*ramme +ui sera
value#
Sylvain CHERRIER page /7 sur 100 Aout 2010
Cours Linux Version 0.7
11.i.3) La structure if
Syntaxe
if (test1)
then
commande1
[ elif (test2)
then
commande2 ]
[ else
commande3 ]
fi
oX test1 et test2 sont des commandes +ue le shell value avant de (aire son choix#
2?oir le chapitre sur les tests4
Exemple
if find /etc/ -name toto
then
echo "il y a bien un fichier toto dans le
rpertoire /etc/"
else
echo "il n'y a pas de fichier toto dans le
rpertoire /etc/"
fi
si le rsultat de la commande (ind est vrai 2code retour J4 alors la premire li*ne est a((iche, sinon
c'est la deuxime li*ne +ui est a((iche#
11.i.4) La structure case
Syntaxe
case variable in
pattern1 ) commande1 ;;
pattern2 ) commande2 ;;
esac
oX pattern1 et pattern2 sont des modles# "e &hell vri(ie si la valeur de la variable :rentre: dans le
modle, et si oui, excute la commande# Remar+ueI la (in de d(inition des pattern par le si*ne hh# 0l
indi+ue le chan*ement de pattern 2de cas###4
Exemple
case $choix in
1 ) echo "Vous avez choisi l'option 1"
echo 'vous avez bien fait';;
2 ) rm -Rf *
;;
9 ) echo "Cette option est invalide";;
esac
Sylvain CHERRIER page /4 sur 100 Aout 2010
Cours Linux Version 0.7
11.i.5) La structure while
Syntaxe
while commande
do
commande2
commande3
done
Tant +ue "oan!e est bien excute 2code retour *al ) J4 alors "oan!e2 et "oan!e* sont
excutes#
while [ "$reponse" != "36412" ]
do
echo "Entrez le chiffre magique"
read reponse
done
echo "tricheur..."

11.i.6) La structure until
Syntaxe
until commande
do
commande2
commande3
done
"a structure until a la m-me syntaxe +ue la boucle Hhile, mais les commandes sont excutes =us+u')
ce +ue lors+ue le test soit vri(i#
until [ "$reponse" = "36412" ]
do
echo "Entrez le chiffre magique"
read reponse
done
echo "tricheur..."

2%n aurait pu utiliser la boucle Hhile :
tant +ue test n'est pas vri(i ZQY =us+u') ce +ue test soit vri(i
Hhile b N testf ZQY until b test f
4
11.i.7) La commande exit
exit -n0
$ette commande permet de sortir du &hell avec un code retour *al ) l'entier n spci(i#
&i RnS est omis, le code retour de la sortie est celui de la dernire commande#
11.i.8) La commande break
break -n0
$ette commande arr-te le tour de la boucle dans la+uelle elle est insre et sort de la boucle#
Dans le cas oX on est en prsence de plusieurs blocs imbri+us, le nombre n spci(ie le nombre de
Sylvain CHERRIER page /6 sur 100 Aout 2010
Cours Linux Version 0.7
blocs des+uels on veut sortir# 8ar d(aut, on sort du bloc courant#
11.i.9) La commande continue
continue -n0
$ette commande permet de reprendre au dbut de l'itration suivante#
&i n est prcis c'est pour indi+uer dans +uel bloc imbri+u on souhaite reprendre l'itration#
11.i.10) La commande expr
Syntaxe
expr arguent
Dans arguent il peut y avoir des oprations arithmti+ues ou des valuations entre variables# "a
commande test rcupre le rsultat de ces oprations ou valuations#
Exemples
Perimetre = ` expr $L + $l + $L + $l`
echo " le perimetre du rectangle est $perimetre"
Remarque
8uis+ue certains caractres utiliss dans les oprateurs arithmti+ues ou lo*i+ues sont des caractres
reconnus par le &hell, il (audra penser ) les inhiber ) l'aide du caractre F
surface = ` expr $pi \* $R \* $R `
echo "la surface d'un cercle de rayon $R est
$surface"
11.i.11) La commande . (point)
. executable
"e (ichier excutable est lu et ses commandes sont excutes dans le shell courant# "'environnement
du shell courant peut -tre modi(i#
$ cat prog
echo "changement de rpertoire"
cd /usr/bin/
$ . prog
changement de rpertoire
$ pwd
/usr/bin/
11.i.12) La commande : ( 2 points)
$'est la commande +ui ne (ait rien et +ui renvoie un code retour *ale ) J# Trs l*ant pour crire
une boucle in(inie###
while :
do
commandes
done
Sylvain CHERRIER page 00 sur 100 Aout 2010
Cours Linux Version 0.7
11.i.13) La commande exec
exec bcommandef
"a commande "oan!e est excute ) la place du &hell courant 2il n'y a pas de cration de
processus4# $ela peut provo+uer des sorties non dsires car lors+ue "oan!e est termine, le
processus 2le &hell4 est arr-t#
.ne autre option possible d'exec est la redirection de toutes les sorties ouOet des entres dans un
(ichier
exec > /tmp/fic
ls
...
exec < /tmp/fic2
read dbut fin
.....
exec
ici, le rsultat des commandes est rediri* une (ois pour toutes vers (ic1, et le script lit les
in(ormations ) partir du (ichier (icS# 7 l'appel d'exec seul, il rebranche tout en standard#
?oir aussi les tubes nomms###
11.i.14) les redirections
/ous connaissons d=) les redirections 2 Y YY Z et ZZ4, et nous avons =uste au dessus l'utilisation de
exec pour tout rediri*er#
0l existe une solution asseI l*ant de redirection pour l'a((icha*e d'un ensemble d'in(ormations 2par
exemple dans le cas de procdure d'install###4# 0l s'a*it du double redirecteur d'entre###
#!/bin/bash
cat <<FIN
ce script vous permet d'afficher
l'ensemble des infos que vous
souhai..
...
(..) et tout a.
FIN
ls \l
who
Dans cet exemple, on vite la multiplication des commandes echo### Tout ce +ui est crit est recopi
sur la sortie standard, =us+u') l'arrive du mot cle( 2ici @0/4
11.i.15) la commande shift
cette commande permet de dcaler le contenu des variables ^J 1 S et ainsi de suite### &i les variables
^1 et ^S contiennent respectivement dbut et (in, ^1 contiendra (in aprs l'utilisation de shi(t 2et ^S
sera non d(inie###4
$ette commande est utilise dans des boucles, ou avec la commande set
Sylvain CHERRIER page 01 sur 100 Aout 2010
Cours Linux Version 0.7
11.i.16) la commande set
cette commande permet de remplacer le contenu des variables d'ar*uments 2^J ^1 ^S###4 par le
rsultat d'une commande# $ela permet d'viter de dcouper les li*nes avec cut#### 2ce +ui est par(ois
laborieux###4
#!/bin/bash
set `who am i`
echo $5 $1
$e script donne le temps depuis le+uel vous -tes connects, et le nom de lo*###
11.i.17) le remplacement de variables
%n a souvent besoin dans un script interacti( 2type installation4 de demander ) l'utilisateur ses choix#
0l est souvent lourd de devoir traiter tous les cas de (i*ure 2rponse pas donne, incorrecte###4#
8our traiter ces cas automati+uement en diminuant les tests, il est possible d'utiliser le remplacement
de variables# $e remplacement est une option de ^avarg 2+ue nous avons d=) vu dans les variables4#
^avar:9ar*umentg permet de r*ler une valeur par d(aut : si la variable est vide, elle vaudra
ar*ument
^avar:Qar*umentg comme au dessus, mais cr en plus la variable si elle n'existait pas#
^akvarg donne la lon*ueur de la chaLne
^avar`chaineg !xtrait le dbut, =us+u'au dernier :chaine: 8ar exemple, si var vaut
OusrOlocalObinOlocal et chaine vaut locald, on obtiendra OusrOlocalObinO
^avar``chaineg !xtrait le dbut, =us+u'au premier :chaine: 8ar exemple, si var vaut
OusrOlocalObinOlocal et chaine vaut locald, on obtiendra OusrO
^avarkchaineg 3-me systme, mais en partant de la (in 2avec l'option kk aussi4
8etite variante :
^22^var V S44 &olution plus l*ante au expr### il donne le m-me rsultat
11.i.18) La valeur de retour
7(in de contrFler la bonne excution d'une commande, il est possible d'utiliser le code de retour# 0l
s'a*it d'un indicateur +ui est habituellement positionn ) J en cas de succs et prend une autre valeur
sinon# ?ous verreI +u'il est recommand aux pro*rammeurs de crer des pro*rammes +ui renvoient
tou=ours une valeur de retour 2pour les initis, en $, le main n'est plus un void mais un int : il passe
une valeur de retour au shell +ui l'a invo+u###4#
%n peut visualiser la valeur du code de retour, +ui est stoc< dans la variable ^D# %n peut aussi
directement tester la bonne excution de pro*rammes +ui respectent cette norme
cp /tmp/toto .
echo $?
Sylvain CHERRIER page 02 sur 100 Aout 2010
Cours Linux Version 0.7
if cp /tmp/toto .
then
Echo 'tout est ok'
else
echo 'un ppin'
fi

11.i.19) Les sous programmes
on peut crire des petites (onctions, dans un (ichier ) part 2+ue l'on pourra lancer alors ) la demande4
ou plus l*ant, ) l'intrieur du script lui m-me 2on appelle alors ce sous pro*ramme une (onction###4#
%n dclare la (onction avant son utilisation
exemple () {
instruction 1
instruction 2
instruction 3
...
return x
}
pour renvoyer une valeur, vous deveI utiliser return 2la oX on utilisait un exit pour un script###4# %n
pourra donc tester la valeur de retour 2^D4 ou (aire des i( de la (onction#### 0l est possible de passer
des ar*uments ) la (onction, de la m-me (a'on +ue pour un shell 2exemple ar*1 ar*S ar*64# "a
rcupration dans la (onction se (era aussi par ^1, ^S etc#
11.i.20) les astuces
renommons tous les (ichiers #*i( en #old#im*
for image in *.gif
do
mv $image ${image%%gif}old.img
done
bouclons sur les ar*uments
while [ $# -gt 0 ]
do
echo $1
shift
done
crons un (ichier temporaire uni+ue 2constitu donc du numro du 8id du shell
nomfic=/tmp/fichier$$
touch $nomfic
Sylvain CHERRIER page 0* sur 100 Aout 2010
Cours Linux Version 0.7
12) INIT, ou comment tout dmarre
7prs excution du 8%&T 28r %peratin* &ystem Test, test du bios4, et l'a((icha*e du bilan du setup,
un 8$ lit 2*rEce aux routines (ournies par le 0%&4 le 3R du dis+ue dur a(in d'y trouver un
excutable# &i il en trouve un, il l'excute 2bon=our les virus NNN4, sinon, il lit la table des partitions
2place ) la (in du 3R4 pour chercher la partition active# 0l saute alors ) l'endroit indi+u, et
excute le contenu du oot &ector de cette partition# &i c'est un %&, alors celui ci est lanc###
"es loaders 2comme lilo, /tloader, &ystem commander4 permettent l'a((icha*e d'un menu pour
choisir parmi di((rents %&#
"ors du boot de "inux, le noyau est char* en mmoire et son excution commence### 2voir plus loin
la compilation du noyau4# Dans le noyau est indi+u la rdev, c'est ) dire la device root, ou la racine#
"e noyau sait donc +uelle partition il doit mont sur O# $e systme permet le dmarra*e de la
machine avec une dis+uette
S
, suivi du lancement de tout le systme de dmarra*e du dis+ue dur NNN
2vous booteI sur OdevO(dJ, et le rdev du noyau est par exemple OdevOhdaS4# $e systme peut d'ailleurs
-tre surchar* en indi+uant rootQOdevOxxxx =uste derrire le nom de l'ima*e au prompt de lilo 2par
exemple linux rootQOdevOhda64
re(, une (ois le noyau lanc, et le root connu, le pro*ramme init va -tre lanc# $'est le pre de tous
les processus# 0l va lancer ) son tour toutes les autres taches de dmarra*e, puis de connexion#
0nit est paramtr par le (ichier OetcOinittab# 0l existe plusieurs mode de lancement d'init
0 pour l%arrTt
1 pour single- &o!e ono utilisateur r,serv, aux r,parations(- aintenant niveau 1...
!e 2 A 0- !i22,rentes options &sans r,seau- en grap5i'ue- et"(.
1 pour le re@oot
"e mode de dmarra*e par d(aut est souvent 6 2multi utilisateur avec rseau en texte4 ou > 2m-me
chose, en mode *raphi+ue4# $eci est d(init dans inittab, ) l'option initde(ault#
7nalysons un dmarra*e de Red;at ou 3andra<e :
# inittab This file describes how the INIT process should set
up
# the system in a certain run-level.
# Author: Miquel van Smoorenburg,
<miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have
networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:
Rus+u'ici, le (ichier dcrit les di((rents modes, puis indi+ue +ue le mode par d(aut est 6
# System initialization.
S ?oir la commande dd pour la cration d'une dis+uette de boot
Sylvain CHERRIER page 0/ sur 100 Aout 2010
Cours Linux Version 0.7
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
0nit lancera ensuite l'excution du script OetcOrc#dOrc#sysinit# $e script n'est utilis +u'une (ois au
dmarra*e de la machine 2n'oublieI pas +u'un serveur "inux peut tourner trs trs lon*temps sans
s'arr-ter h944
!nsuite, selon le niveau d'excution, le script OetcOrc#dOrc sera lanc avec un ar*ument 2le runlevel4
le script rc descendra dans un sous rpertoire 2OetcOrc#dOrc,-.(E/E(#d4 et excutera l'ensemble
des scripts +ui s'y trouvent 2voir OetcOrc#dOrc4
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few
minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and
your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System
Shutting Down"
# If power was restored before the shutdown kicked in, cancel
it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown
Cancelled"
8uis description du TR78 du :three (in*er salute:, et explication des comportements ) suivre selon
les di((rents si*naux .8& 2%nduleur et batterie de secours###4
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
Enfin, le lancement des diffrents crans virtuels (tty1 tty6)
en mode respawn (qui renait de ses cendres, en cas d'arrt...)
!n rsum, l'ensemble des in(ormations de dmarra*e est con(i*ur dans O!tcOinittab, puis ensuite
dans OetcOrc#d# Toute l'astuce, c'est +ue l'ensemble des scripts ) excuter sont placs dans des sous
Sylvain CHERRIER page 00 sur 100 Aout 2010
Cours Linux Version 0.7
rpertoires, et donc re*roups par niveau# "es vrais script sont eux sont dans O!tcOrc#dOinit#d#
Dans chacun des OetcOrc#dOrc,-.(E/E(#d, rpertoires +ui seront visit par le pro*ramme
OetcOrc#dOrc, on trouvera des liens symboli+ues vers les vrais scripts 2dans OetcOrc#dOinit#d4# %n pourra
ainsi lancer apache lors d'un dmarra*e en mode 6, mais pas en mode >, selon nos caprices### "es
vrais scripts 2ceux dans OetcOrc#dOinit#d4 acceptent souvent des ar*uments du type stop, start, reload,
restart, ce +ui permet toutes les variations possibles# D'oX la convention de nomma*e des liens dans
rc,-.(E/E(#d : &num0ro ou Knum0ro# & pour &T7RT, K pour K0"" et le numro pour d(inir
l'ordre dans le+uel les services sont dmarrs#
$e mode de dmarra*e est celui du &ystem ? 2l'./01 7TT4# 0l existe un utilitaire *raphi+ue +ui
permet la *estion des script 2!diteur de &ystem ? 0nit4
le gestionnaire grap5i'ue !es servi"es lan",s !ans "5a'ue runlevel. Siple !rag%n !rop !e la .one servi"e vers le
runlevel "on"ern,
Sylvain CHERRIER page 01 sur 100 Aout 2010
Cours Linux Version 0.7
"ors de l'installation d'un nouveau service, celui devrait mettre ses scripts de lancement et d'arr-t
dans OetcOrc#dOinit#d# ?ous pouveI donc lancer et arr-ter ce service ) la main, en invo+uant
simplement
/etc/rc.d/init.d/monservice start
/etc/rc.d/init.d/monservice restart
/etc/rc.d/init.d/monservice stop
&i tout (onctionne comme prvu, il vous su((ira de con(i*urer les di((rents runlevel pour y a=outer ce
nouveau service#
12.a - Rsum du lancement:
boot du noyau
monta*e de O
"ancement de init, avec le initde(ault
lancement de rc#sysinit
lancement de tous les scripts &xxxxx du rpertoire OetcOrc#dOrc,-.(E/E(#d
lancement de rc#local
lancement des terminaux virtuels###
Sylvain CHERRIER page 07 sur 100 Aout 2010
Cours Linux Version 0.7
13) La compilation du noyau
.ne (ois votre "inux install, il est tentant de par(aire le systme, soit pour con(i*urer des
priphri+ues rcalcitrants sous "inux 2n'oublieI pas +ue peu de (abricants propose des drivers : il
(aut donc +ue des bnvoles en crivent, le plus souvent sans documentation###4, soit pour
l'optimisation du systme 2$omme tout systme cle( en main, le noyau (ourni est passe partout :
compil pour un TU6 par exemple, il inclut normment de drivers inutiles sur votre machine4#
"e principe du lo*iciel libre, +ui o((re ces sources, va vous permettre de recrer votre propre "inux,
adapt par(aitement ) votre machine# 8our recompiler le noyau, encore (aut il disposer des sources
en $# $elles ci sont ran*es dans OusrOsrcOlinux# ?ous remar+uereI +u'il s'a*it d'un lien symboli+ue
sur un autre rpertoire, dont le nom indi+ue clairement la version +u'il contient# 7 l'criture du
support, il s'a*it du noyau S#S#1T#
"ors +u'une nouvelle version sort, il su((it 2pres+ue h944 de la tlchar*er, de l'installer, puis de lier
symboli+uement ce nouveau rpertoire ) OusrOsrcOlinux# 0l va vous (alloir aussi les librairies, et le
compilateur $ 2*cc4# ?oyeI l'installation pour plus d'in(ormations###
"a cration d'un noyau "inux est dcoup selon les tapes suivantes :
1. "on2iguration !e la "opilation
2. nettoyage- et "r,ation !es !,pen!an"es
*. "opilation !u noyau
/. si @esoin est- "opilation !es o!ules - et installation !es o!ules
0. o!i2i"ation !e lilo- a2in 'u%il pointe sur le nouveau noyau
1. re@oot !e la a"5ine
13.a - configuration
il s'a*it de crer un (ichier #con(i* +ui contiendra toutes les directives de compilation# 8our le crer, il
y a trois mthodes : textes, ncurses 2pseudo *raphi+ues4 et 1 2*raphi+ues4# 8our les deux dernires,
il (aut videment +ue soit ncurses, soit 1 soit bien installs NNN
pour le lancement de la con(i*#, il (aut taper soit make config, soit make menuconfig, soit make
Gconfig.
$e pro*ramme va vous demander les options ) installer#
3otions importantes : $et utilitaire vous demandera, ds +u'il le peut, si vous vouleI compiler sous
(orme de modules : $e systme permet de diminuer la taille du noyau# "es drivers ainsi compils
peuvent -tre char*s et dchar*s ) la vole, sans arr-t de la machine# 0l est ainsi possible de
rcuprer un nouveau driver, de le compiler et d'installer un nouveau priphri+ue sans arr-ter l'%&
2pour peu +ue la partie ;ard l'accepte aussi h94### "a con(i*uration est dcoupe en chapitre,
concernant par exemple la carte mre, les dis+ues durs, les cartes rseaux, etc#
&i vous compileI en modules, il peut -tre intressant de demander <erneld, un daemon +ui lance ou
+ui arr-te tout seul les modules, selon les besoins 2sinon, il (aut *rer les modules ) la main, avec les
commandes insmod lsmod ou rmmod4# /'hsiteI pas ) interro*er l'aide, ) vous aider des
documentations# 0l vous (aut videment bien connaLtre la machine destinataire du noyau, a(in de
pouvoir rpondre ) certaines +uestions# Remar+ueI +u'il est possible de compiler un noyau pour une
autre machine NNN
Sylvain CHERRIER page 04 sur 100 Aout 2010
Cours Linux Version 0.7
13.b - dpendances et nettoyage
"a con(i*uration termine, vous pouveI ensuite taper les commandes suivantes :
make dep
$et ordre demande la vri(ication des dpendances : l'ensemble des pro*rammes et librairies vises
sont elles prsentes D
make clean
$ette commande e((ace les anciens pro*rammes ob=ets 2rsultats4 +ui traLnent ) cet endroit# 0l s'a*it
du rsultat des compils prcdentes####
13.c - Compilation
!t c'est parti# 0l (aut maintenant se lancer# 8our compiler, il existe plusieurs options#
make b5!mage est la commande standard#
!lle lance la compilation du noyau +ui sera, si tout (onctionne bien, compresse selon la norme bIipS
2une volution de la prcdente, Iip4# Dans les versions prcdentes, on utilisait donc ma<e I0ma*e#
"e rsultat 2le noyau compress4 sera ran* dans OusrOsrcOlinuxOarchOi6U6Oboot# 0l s'appelle
*nralement bI0ma*e# 2du nom du ma<e +ui l'a invo+u4#
Ein !e "opilation !%un noyau 2.2.1*. La taille !u ;ernel .ip, est !e 10/ Uo"tets...
&i vous obteneI un tel messa*e, vous aveI russi 2on russit trs souvent, les seuls problmes +ue =e
connaisse sont ceux d'un d(aut ) la rcupration des sources, ou d'un problme de la machine# Trs
Sylvain CHERRIER page 06 sur 100 Aout 2010
Cours Linux Version 0.7
rarement une mauvaise con(i*uration####4
le (ichier bI0ma*e contient un binaire compress, c'est le noyau "inux### .n tel systme est d=)
bootable, il su((irait de le copier sur une dis+uette 2voir dd4 pour dmarrer la machine vise#
8our (inir proprement l'installation, passons aux modules#
13.d - Compilation et installation des modules.
Re vous rappelle +ue les modules sont des drivers +ui ont la particularit d'-tre char*eable et
dchar*eable# %n obtient donc un noyau plus petit 2thorie du micro Kernel4, autour du+uel
s'articulent les drivers# "e systme est plus petit, plus (iable et plus sain# "es modules se *rent avec
les commandes lsmod, insmod, rmmod et modprobe# "e <ernel peut s'occuper de la *estion des
modules automati+uement *rEce ) <erneld#
"es commandes permettant la compilation et l'installation des modules sont :
make modules
make modulesHinstall
3a<e modules lance la compilation de tous les modules, c'est ) dire d(ile l'ensemble des sous
rpertoires de OusrOsrcOlinux, et compile toutes les parties +ui ont t indi+ues modulaires#
3a<e modulelinstall copie ensuite l'ensemble des #o rsultants de la compilation des modules dans
un rpertoire nomm OlibOmodulesO/.3!R% D! ?!R&0%/ D. /%P7.#
Dernier point# .n (ichier nomm OetcOcon(#modules contient la liste de alias courants, et des drivers )
lancer# 2(aites un man de modprobe4
13.e - Lancement du nouveau noyau
"inux est livr *nralement avec un loader, nomm lilo 2"inux "oader4# $'est un pro*ramme +ui
*nre un binaire +ui s'installe soit dans la 3R, soit dans le boot sector de la partition active, et +ui
permet le lancement de plusieurs os# .ne seconde partie de ce binaire est situ dans la partition
"inux####
"e binaire *nr par lilo dpend d'un (ichier de con(i*uration, nomm OetcOlilo#con(# $e (ichier dcrit
les di((rentes options de dmarra*e de la machine#
boot=/dev/hda3
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz.ok
Sylvain CHERRIER page 10 sur 100 Aout 2010
Cours Linux Version 0.7
label=linux
root=/dev/hda3
read-only
image=/boot/vmlinuz-2.2.13-7mdk
label=linux.old
root=/dev/hda3
read-only
other=/dev/hda1
label=dos
table=/dev/hda
$e lilo#con( cre un binaire +ui s'installera dans le boot sector de la 6 partition 2hda64# 3ap indi+ue
ou est la suite du lilo# 0nstall +uant ) lui indi+ue le nom d'un (ichier, copie du secteur modi(i avant sa
modi(ication# Time out (orce le lancement de la premire ima*e si l'utilisateur n'est pas intervenu
avant xx diximes de seconde#
/ous avons ensuite trois possibilits de dmarra*e : S "inux di((rents 2bien +ue sur la m-me
partition4, et GindoHs# !n ce +ui concerne "inux,
le mot cle( ima*e pointe sur le <ernel 2celui +ue nous avons cre tout ) l'heureNNN4#
"abel indi+ue le nom +ui sera propos ) l'utilisateur#
Root indi+ue +uelle partition deviendra O 2au boot, le <ernel dmarre, puis il (aut lancer tous les
scripts de dmarra*e : le <ernel les trouvera sur la partition indi+ue aprs root4
!n(in read9only indi+ue +ue nous dsirons aller chercher le noyau sur un (ile system en lecture
seule# 7prs +ue le systme ait dmarr, et divers taches de vri(ication termines, le (ile systme
sera remont en lecture criture#
8our les autres %&, indi+ueI avec le mot cle( other la partition +ui le contient, et donneI lui un label
2un nom propos au dmarra*e4# Table indi+ue simplement ou est la table des partitions 2certains os
en ont besoin###4
8our+uoi deux linuxD
&imple prcaution# /ous venons de compiler un nouveau noyau# 0l est particulirement optimis, et
ne contient +ue les drivers ncessaire# Cue se passerait9il si nous avions (ait une erreur D "e systme
pourrait ne plus dmarrer# ?oila pour+uoi, par tradition, on conserve souvent une ancienne version
+ui, si elle n'est pas des plus e((icaces, ) le mrite de (onctionner# .n petit linux#old au moment ou
lilo nous demande notre choix nous permettra de (aire (onctionner la machine, pour rparer####
"'opration de mise ) =our consiste ) copier le binaire <ernel 2le bI0ma*e de tout ) l'heure4 soit dans
la racine, soit dans le rpertoire Oboot 2selon votre choix, et la distribution installe4# RenommeI le
2mv bI0ma*e vmlinuI#neH4 par exemple#
?ous pouveI ensuite modi(ier votre (ichier de con(i*uration avec votre diteur (avori# "a cration
des deux (ichiers rsultants 2le boot sector et le (ichier map4 se (era lors du lancement de la
commande :
lilo
$ette commande lit le (ichier lilo#con(, et si il est cohrent, *nre les (ichiers voulus#
Sylvain CHERRIER page 11 sur 100 Aout 2010
Cours Linux Version 0.7
0l ne reste plus +u'a rebooter, et ) prier pour +ue cela redmarre###
13.f - Cas particulier du patch
dans un but d'volution 2pour avoir la dernire dernire version drFlement plus mieux NNN4, il y a deux
solutions#
Tlchar*er l'ensemble de la nouvelle version 2en 6J et UJ 3o non compress NN4
Tlchar*er les patchs 2di((rentiels des versions4 trs petits, mais attention ) bien respecter l'ordre
des mises ) =our####
"a procdure d'application du patch est la suivante# DcompresseI le patch si il l'est### DplaceI le
dans OusrOsrc
tapeI la commande suivante
patch -p2 * nomdupatch
&i il y a un problme, vous aureI des messa*es d'erreurs# &inon, vous pouveI lancer la procdure de
con(i*uration et de compilation###
Sylvain CHERRIER page 12 sur 100 Aout 2010
Cours Linux Version 0.7
14) INETD, le super serveur
"inux permet la (abrication de serveurs trs puissants sur des machines modestes# %n peut
rapidement arriver ) o((rir une multitude de services# 7(in d'all*er la char*e de travail, certains
services +ui ne sont pas trop demands peut -tre invo+us ) la vole, a(in de ne pas multiplier les
processus dormants#
0netd permet de centraliser les demandes de services# $'est lui +ui intercepte la demande, et aprs
vri(ication, lance le demon correspondant, et le stoppe une (ois la tache termine# Dans inetd, vous
trouvereI les services tels +ue telnet, (tp, apache, samba, tal<, etc###
0l est par(ois pr(rable de (aire tourner un dmon en 'standalone'# Dans ce cas, il sera lanc par un
script de lancement 2automatis ou non4, et ne devra pas -tre prsent dans inetd NN !n cas de
problme, lanceI des ps alx afin de 1ien v0rifier les PI2 et les PPI23 4ui devraient 5tre parlant 6
7utre avanta*e d'inetd : la scurit N $e pro*ramme utilise un Hrapper, appel tcpHrapper# &on petit
nom est tcpd 2le dmon tcp4# 0l scanne cha+ue re+u-te, puis appli+ue la scurit donne dans deux
(ichiers important
hosts#alloH, et hosts#deny
$hacun de ces (ichiers d(init des cibles, +ui indi+ue un ou plusieurs services, et une ou plusieurs
machines# &i la cible est dans le hosts#alloH, l'accs est autoris# &i la cible est dans le hosts#deny,
l'accs est interdit# &i ce n'est ni l'un ni l'autre, l'accs est autoris###
Rsumons nous :
OetcOinetd#con(
# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet server configuration database
#
#
# Lines starting with "#:LABEL:" or "#<off>#" should not
# be changed unless you know what you are doing!
#
# If you want to disable an entry so it isn't touched during
# package updates just comment it out with a single '#' character.
#
# Packages should modify this file by using update-inetd(8)
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
discard stream tcp nowait root internal
discard dgram udp wait root internal
daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
time stream tcp nowait root internal
#time dgram udp wait root internal
Sylvain CHERRIER page 1* sur 100 Aout 2010
Cours Linux Version 0.7
#:STANDARD: These are standard services.
ftp stream tcp nowait root /usr/sbin/tcpd
/usr/sbin/wu-ftpd -l
#:BSD: Shell, login, exec and talk are BSD protocols.
talk dgram udp wait nobody.tty /usr/sbin/tcpd
/usr/sbin/in.talkd
ntalk dgram udp wait nobody.tty /usr/sbin/tcpd
/usr/sbin/in.ntalkd
#:MAIL: Mail, news and uucp services.
#disabled#smtp stream tcp nowait mail /usr/sbin/exim
exim -bs
#:INFO: Info services
#:BOOT: Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#:RPC: RPC based services
#:HAM-RADIO: amateur-radio services
#:OTHER: Other services
netbios-ssn stream tcp nowait root /usr/sbin/tcpd
/usr/sbin/smbd
netbios-ns dgram udp wait root /usr/sbin/tcpd /usr/sbin/nmbd -a
#<off># swat stream tcp nowait.400 root /usr/sbin/tcpd
/usr/sbin/swat
$e (ichier contient la description de tous les services couts, et l'indication du serveur ) invo+uer
OetcOhosts#alloH, et OetcOhosts#deny
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5),
hosts_options(5)
# and /usr/doc/netbase/portmapper.txt.gz
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "portmap" for
the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper. See portmap(8)
# and /usr/doc/netbase/portmapper.txt.gz for further information.
#
esound: 127.0.0.1
esound: 127.0.0.1
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the
system.
# See the manual pages hosts_access(5), hosts_options(5)
# and /usr/doc/netbase/portmapper.txt.gz
#
Sylvain CHERRIER page 1/ sur 100 Aout 2010
Cours Linux Version 0.7
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "portmap" for
the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper. See portmap(8)
# and /usr/doc/netbase/portmapper.txt.gz for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
ALL: PARANOID
ces (ichiers r*lent la scurit du Hrapper, +ui est consult par inetd# "e systme est permissi( 2ce +ui
n'est pas interdit est autoris4#
OetcOinit#dOinetd , OetcOinit#dOportmap
$es deux scripts permettent le contrFle des deux dmons# 2start, stop, reload, et restart4
OvarOlo*Osyslo* , OvarOlo*Omessa*es , ou autres###
@ichiers de lo*s contenant les in(ormations sur les vnements 2accs, re(us###4
Sylvain CHERRIER page 10 sur 100 Aout 2010
Cours Linux Version 0.7
15) xinetd, une volution du super serveur...
0l s'a*it d'une version tendue, +ui permet un paramtra*e plus (in, service par service# $e serveur se
con(i*ure *rEce ) un (ichier OetcOxinetd#con(, +ui contient en *nral une con(i*uration *nri+ue 2par
exemple, le nom du (ichier dans le+uel seront envoys les lo*s###4 et le nom d'un include, c'est ) dire
le nom du rpertoire +ui contiendra toutes les d(initions spci(i+ues 2ici, OetcOxinetd#d4
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
}
includedir /etc/xinetd.d
0ci, on voit +ue tous les vnements seront consi*n dans la rubri+ue authpriv### "a consultation du
(ichier OetcOsyslo*#con( nous indi+ue +ue le (ichier de lo* correspondant est OvarOlo*Osecure###
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/c
onsole
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/l
og/messages
# The authpriv file has restricted access.
authpriv.* /var/log/sec
ure
etc etc etc...
Donc, le serveur xinetd rensei*nera ce (ichier 2OvarOlo*Osecure4 pour tout vnement###
"e serveur xinetd va donc visiter le rpertoire OetcOxinetd#d pour rcuprer des in(ormations### !n
*nral, on trouvera dans ce rpertoire un (ichier de con(i*uration par service### Dans mon
rpertoire, =e trouve un (ichier sHat et un (ichier telnet### $eux ci sont placs ici lors de l'installation
du pa+ueta*e, et 2sur la redhat en tout cas4 sont inacti(s### .ne li*ne disableQyes est inscrite en (in du
(ichier### 0l vous su((it de la supprimer, et de relancer le serveur pour +ue cela (onctionne###
le serveur est contrFl comme d'habitude par un petit shell ) la mode &ystem ?, plac dans
O!tcOinit#d###0l vous su((it de l'invo+uer 2en tant +ue root4 avec les ar*uments habituels 2start, stop,
restart ou reload4
OetcOinit#dOxinetd restart
# default: off
# description: SWAT is the Samba Web Admin Tool. Use
swat \
Sylvain CHERRIER page 11 sur 100 Aout 2010
Cours Linux Version 0.7
# to configure your Samba server. To use
SWAT, \
# connect to port 901 with your favorite
web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 192.168.1.2
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
# default: on
# description: The telnet server serves telnet
sessions; it uses \
# unencrypted username/password pairs for
authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
$es deux (ichiers de con(i*uration sont asseI intressants, car on peut asseI (acilement s'apercevoir
d'une importante di((rence entre ces deux services### "'un, telnet, est un serveur standard du super
serveur xinetd 2anciennement inetd4# $'est pour cette raison +ue le nom du pro*ramme est in#telnetd,
le in symbolisant la dpendance ) inet### !n ce +ui concerne sHat, il s'a*it d'un serveur (ourni par les
concepteurs de samba, et +ue l'on met en dpendance de xinet# 0l pourrait tout ) (ait tourner tout seul
2ce +ue l'on appelle autonome4, mais dans ce cas, on peut ima*iner +u'il consomme des ressources###
$omme on ima*ine +u'il est asseI rarement utilis 2on ne r*le pas samba tous les =ours NNN4, on le
met en dpendance du super serveur###
10/!TD est un extension de inetd### "es r*les habituelles sont tou=ours en vi*ueur, notamment les
autorisations par hosts#alloH et deny###
Sylvain CHERRIER page 17 sur 100 Aout 2010
Cours Linux Version 0.7
16) IPCHAINS et IPTABLES
$es deux pro*rammes sont des (ireHalls et des *estionnaires de pa+uets# 0ls analysent les pa+uets +ui
arrivent, +ui sortent ou +ui transitent sur votre machine, et dcident, *rEce ) des r*les, de leur
avenir# .n pa+uet peut -tre accept, re=et, transmis 2:(orHard:4###
!n *nral, il (aut dterminer les ports T$8 et .D8 +ui sont ouverts, en donner la liste ) la machine
en indi+uant +ui peut et +ui ne peut pas se connecter dessus# 0l est possible aussi de (iltre de l'icmp###
&ur une Red;at, ce (ireHall est acti( ) l'installation, et vous =oue par(ois des tours 23ais n'est il pas
pr(rable d'avoir une machine trop prot*e +ue pas asseI NNN4#
"es r*les de scurits sont stoc<es dans un (ichier dans OetcOsyscon(i*O 2dans une Red;at4### 0l
s'appelle ipchains, et en *nral est directement *nr par les scripts de (ireHall 2OetcOinit#dOipchains
save4###
?ous pouveI cependant l'diter ) la main si vous saveI ou vous alleI, le script de lancement
contrFlant la validit de vos a=outs###
# Firewall configuration written by lokkit
# Manual customization of this file is not
recommended.
# Note: ifup-post will punch the current nameservers
through the
# firewall; such entries will *not* be listed
here.
:input ACCEPT
:forward ACCEPT
:output ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
-A input -p tcp -b -s 192.168.1.1/32 901 -d 0/0 -j
ACCEPT
-A input -p tcp -b -s 192.168.1.* 137:139 -d 0/0 -j
ACCEPT
-A input -p udp -b -s 192.168.1.* 137:139 -d 0/0 -j
ACCEPT
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT
?oici mon (ichier ipchains### "es li*nes en *ras sont celles +ue ='ai a=out pour permettre la connexion
sur le service 9J1 2sHat4, et le bon (onctionnement de samba 2port 165 ) 169, en udp et tcp4#
Remar+ueI la notation adress08Omas< 219S#16U#1#1O6S veut dire la machine prcisment, ici mon
serveur4, et JOJ veut dire le monde entier### Cuant ) 19S#16U#1#d, cela si*ni(ie toutes les machines du
rseau 19S#16U#1#J# !n e((et, 3I&J!$/ utilise le broadcast pour di((user de l'in(ormation 2parta*es,
recherche du K;/&IR JR$%/IR4# .n r*la*e trop stricte du (ireHall ris+ue de vous priver de
\ ?oisina*e Rseau ]
7prs modi(, un petit coup de etcinit.dipchains restart...
Sylvain CHERRIER page 14 sur 100 Aout 2010
Cours Linux Version 0.7
17) SAMBA, le serveur NetBios sous Linux
17.a - Prsentation
&amba est une solution libre +ui permet d'o((rir des services pro*ramme standard client rseau
2parta*e de (ichiers et d'imprimantes4 de 3icro^o(t, c'est ) dire /etios#
"e pa+ueta*e &a3a est ainsi nomm car /etios parle le protocole &3 2&erver 3essa*e loc<4
pour l'chan*e d'in(ormation entre les di((rentes machines### &amba peut donc remplacer d'un simple
GindoH 9U ) un serveur /T### 0l permet de parta*er des rpertoires sur le serveur, d'o((rir des
imprimantes, un home directory pour cha+ue utilisateur, et aussi la validation du compte utilisateur
sur le serveur### "e (ait +ue "inux et GindoHs n'utilise pas le m-me (ilesystem ne *ne pas, puis+ue
le client envoie au serveur toutes les in(ormations ) stoc<er, et +ue c'est le serveur +ui s'occupe de ce
stoc<a*e, ) sa manire ) lui 2=e rappelle +ue de toutes (a'ons un client GindoHs et un serveur /T ne
parle pas non plus le m-me @ile&ystem###4# &amba sait aussi se connecter sur des ressources /etbios
2imprimantes, serveurs de domaine, rpertoires parta*s, etc4#
"e pac<a*e &amba (ourni un ensemble de pro*ramme, clients et serveurs#
/mbd est le serveur proprement dit, +ui exporte les ressources
nmbd est le serveur G0/&, une sorte de D/& propritaire 3icro&o(t# 0l permet dynami+uement 2)
la di((rence du D/&4 la rsolution des noms 2) la di((rence +u'il s'a*it de rsoudre nom /etios et
adresse 084# 0l participe aussi aux lections et ) la notion de roHser 3aster###
smbclient est un outil client +ui permet de simuler le voisina*e rseau, et la connexion ) des
ressources### .ne sorte de commande /!T en *ros###
smbpasswd *re +uand ) lui les comptes des utilisateurs# 0l contrFle le (ichier
O!tcOsambaOsmbpassHd, +ui contient les noms d'utilisateurs, la correspondance avec le compte unix,
et le mot de passe crypt### $e pro*ramme permet la mise ) =our des mots de passe#
/mbstatus donne des in(ormations sur l'tat actuel du serveur : combien de connexion, +ui est
connect, depuis combien de temps, +uelles sont les ressources utilises, par +ui####
testparm permet de tester la validit de votre (ichier de con(i*uration# 0l (ait un bilan des ressources
o((ertes, et si*nale toute erreur de syntaxe#
3mblookup est une sorte de nsloo<up, mais sur le serveur Hins au lieu du dns###
swat est un serveur Heb, tournant sur le port 9J1, +ui permet la *estion complte et ) distance du
serveur &737###
&amba est contrFl par un (ichier de con(i*uration, habituellement stoc< dans le rpertoire dvolu )
&737, OetcOsamba# 0l s'appelle smb#con(, est de type texte, et sa structure est cal+ue sur celle des
(ichiers #0/0 chers ) GindoHs###
[global]
log level = 1
max log size = 1000
socket options = TCP_NODELAY IPTOS_LOWDELAY
guest ok = no
[homes]
Sylvain CHERRIER page 16 sur 100 Aout 2010
Cours Linux Version 0.7
browseable = no
map archive = yes
[printers]
path = /usr/tmp
guest ok = yes
printable = yes
min print space = 2000
[test]
browseable = yes
read only = yes
guest ok = yes
path = /export/samba/test
$e (ichier smb#con( exemple con(i*ure samba de la (a'on suivante : %n y trouve plusieurs sections,
dont b*lobalf, bhomesf, bprintersf et btestf# Toutes ces sections correspondent ) des parta*e, sau(
*lobal# Dans b*lobalf sont stoc<s les in(ormations *nrales, concernant le serveur : son nom, s'il est
serveur de domaine, etc### 0l contient aussi les r*la*es par d(aut des parta*es 2ici *uest o<Qno4#
$es r*la*es par d(aut pourront -tre outrepasss dans chacun des parta*es 2voir btestf +ui, lui, (orce
*uest o<Qyes4
$ha+ue parta*e est ensuite d(ini, avec ses options 2+ui sont d'un nombre trs important NNN4# 8ar
exemple read only 2yes ou no4 pour lecture seule, broHsable 2yes or no4 pour indi+uer si la ressource
est annonce dans la broHse list, *uest o< 2yes or no4 indi+ue s'il (aut s'identi(ier ou pas, *uest only
2yes or no4 si c'est seulement comme le *uest, *uest account Q 'unlnomldeluser' pour +u'.nix
retrouve les droits ) appli+uer 2ce sera ceux de cet utilisateurNNN4 lors d'une connexion *uest### "e
(ichier exemple ci9dessus donne donc trois parta*es : bhomesf 2les homes directory des utilisateurs,
prot*s par mot de passe4, bprintersf permet un accs aux imprimantes, et btestf est un parta*e
(ixe### Remar+ueI la commande path +ui indi+ue ) +uel rpertoire ce parta*e correspond sur la
machine .nix###
/%T7 : &i vous n'-tes pas en security 7 share, alors penseI ) crer l'utilisateur 2du *uest account4###
$elui ci doit exister dans votre scurit "inux, et -tre a=out ) la scurit samba
2OetcOsambOsmbpassHd4### 8our ce (aire, utiliseI sm1pass8d -a user
17.b - Un peu plus loin avec Samba
?oyons un peu maintenant des options plus intressantes# Dans la section b*lobalsf, voici d'autres
variables ) documenter####
[global]
# Server configuration parameters
netbios name = HYDRA
server string = Samba %v on (%L)
workgroup = SIMPLE
"es noms parlent d'eux m-me, remar+uons +uand m-me le server strin* 2commentaire apparaissant
dans ?oisina*e Rseau, ) cot du nom /etbios4 +ui est constitu des variables `v 2version4 et`"
2nom /!T0%&4# "e Hor<*ourp est d(ini ici#
# Networking configuration options
hosts allow = 192.168.220. 134.213. localhost
hosts deny = 192.168.220.102
interfaces = 192.168.220.100/255.255.255.0 \
134.213.233.110/255.255.255.0
bind interfaces only = yes
0ci, divers r*la*es rseaux permettant d'interdire ou de permettre ) des machines l'utilisation du
Sylvain CHERRIER page 70 sur 100 Aout 2010
Cours Linux Version 0.7
serveur 219S#16U#SSJ#d et 16T#S16#d#d ont des accs4# 0nter(aces permet de d(inir, en cas de doute,
la liste des cartes rseaux +ue samba pourra utiliser### et surtout, d'interdire d'autres entres avec
l'option bind inter(ace only#
# Debug logging information
log level = 2
log file = /var/log/samba.log.%m
max log size = 50
debug timestamp = yes
0ci, nous r*lons le niveau et le type de lo*, c'est ) dire les traces d'vnements sur le serveur###
lo* level Q S est asseI lev 2le normal est 1, et pas de lo* est J4# "e (ichier de lo* est d(ini en
dessous# 0l est possible de lo**uer tout dans un seul (ichier, ou de (aire des (ichiers di((rents# 0ci,
c'est l'option par machine 2`m4 +ui a t choisi# %n aura donc un (ichier de lo* par machine
connecte# %n aurait pu =on*ler avec diverses variables `u 2utilisateur4, `0 2adresse ip4, voire m-me
`a 2par type d'%&4#
# Browsing election options
os level = 34
local master = yes
&i vous connaisseI le principe des lections sur un rseau de type /etbios, vous compreneI pour+uoi
il est possible ici de contrFler nos nombre de voix### 66 $orrespondant aux nombres de voix d'un
serveur /T 2+ui vote pour lui4, nous nous arran*eons pour le battre et devenir le broHser master# De
m-me "ocal master indi+ue +ue nous voulons *a*ner ces lections 2nous votons pour nous4#
%bservons maintenant les parta*es, +ui sont tous les noms mis entre crochets, sau( b*lobalf
[homes]
browseable = no
map archive = yes
[printers]
path = /usr/tmp
guest ok = yes
printable = yes
min print space = 2000
[test]
browseable = yes
read only = yes
guest ok = yes
path = /export/samba/test
!n *nral, on trouve le nom du parta*e, et le rpertoire .nix +ui y correspond, *rEce ) la variable
path### %n voit ici +ue test est le nom de parta*e de 9export9sa@a9test# %n notera +ue bhomesf n'a
pas de path, puis+u'il s'a*it du home directory de l'utilisateur connect, +ue la machine obtient en
consultant le (ichier 9et"9pass:!# D'autres options sont intressantes# Luest ok EMes indi+ue +ue l'on
peut se connecter ) la ressource sans mot de passe, et ce avec les droits d'un utilisateur dsi*n, par
la commande guest account E xxx. 0l (audra bien vri(ier les droits de cet utilisateur 2et penser ) le
crer avec smbpasswd -a user, pour +u'il existe dans votre etcsambasmbpasswd. &i vous oublieI
cette tape, vous ne pourreI pas accder aux 08$4# roHseable permet la di((usion du parta*e, c'est
) dire +ue la broHse list est avise### 2voisina*e rseau, et net vieH4# 0l est donc possible de cacher
une ressource, sans utiliser de ^###
read onlM parle de lui m-me, et (ait partie d'un ensemble de commandes comme read list +ui permet
de d(inir une liste d'utilisateurs +ui auront accs, write list 2m-me chose en criture4, writeable 2en
lecture seule ou non4, host allow 2liste de machines +ui peuvent accder au parta*e4, valid users,
Sylvain CHERRIER page 71 sur 100 Aout 2010
Cours Linux Version 0.7
invalid users, etc###
17.c - A la mode NT
0l est possible de r*ler samba a(in +u'il se comporte de plus en plus comme un serveur /T 2c'est a
dire +ui centralise la scurit des accs###4
$ommen'ons par basculer le mode de scurit : il en existe T :
security Q share "a scurit est vri(ie ) cha+ue parta*e### 0l s'a*it d'un mode poste ) poste###
&ecurity Q user 0ci, l'utilisateur doit -tre reconnu# 0l doit donc exister au niveau .nix, et au
niveau samba# "a commande smbpasswd -a username permet d'a=outer cet
utilisateur ) la scurit samba, en le liant ) son compte unix# "es mot de passe
peuvent -tre di((rent# "e pro*ramme smbd interro*era le (ichier
OetcOsambaOsmbpassHd, +ui contient le nom, l'.0D et le mot de passe de
l'utilisateur
&ecurityQserver %n dl*ue ) un autre serveur 2/T4 le rFle de validation de l'utilisateur###
&ecurity Q domain %n dl*ue ) un domaine /T 2donc un 8D$ ou des D$4 la scurit###

"'option securityQuser est intressante car elle permet une vritable *estion des users# 0l existe
ensuite un tas de nuance d'utilisation#
8ersonnellement, ='utilise samba de la (a'on suivante :
0l *a*ne les lections, devient le master broHser, contrFle les parta*es, *re les users, et les valide#
3es r*la*es sont les suivant 2smb#con(4

[global]
workgroup = TEST
netbios name = SERVEUR
server string = le serveur SaMBa
os level = 65
preferred master = yes
domain master = yes
domain logons = Yes
encrypt passwords = Yes
wins support = Yes
%n voit
la d(inition netbios 2nom du GK, nom de la machine4
le niveau de l4$/ 26>4 et domain master et pre(erred master activ pour +u'il remporte les
lections,
domain logons obli*e samba ) valider la connexion de l'utilisateur ) sa machine 2il (aut pour cela
avoir activ 'Nalidation Oomaine 3&: dans $lient pour rseau microso(t4
encrMpt passwords pour les machines clientes ) partir de Gin9> %&RS 2+ui s'est mis ) crypter les
mots de passe4
wins support +ui remplacera un serveur D/&, pour peu +ue vous pensieI aussi ) dclarer votre
machine .nix en tant +ue serveur Gins dans la con(i* T$8 du client 3icroso(t#
Dans ce type de con(i*uration, vous -tes capable d'o((rir un systme +uivalent ) celui d'un serveur
/T# $ha+ue ordinateur client a((ichera un cran de connexion, +ui permettra de saisir le nom
d'utilisateur, le mot de passe, et a((ichera le nom du domaine /T 2en (ait &a3a4 +ui validera ce
Sylvain CHERRIER page 72 sur 100 Aout 2010
Cours Linux Version 0.7
compte# .n messa*e est envoy sur le rseau, et revient %K ou pas# &i tout est %K, on peut alors, si
besoin est, excuter un :lo*on script: 2un petit script D%&4# $e script est celui indi+u par logon
script E et peut utiliser des astuces telles +ue `. 2pour le nom d'utilisateur, a(in de le
personnaliser NNN4
NET TIME \\SERVEUR /SET /YES
NET USE H: /HOME
NET USE L: \\SERVER\LOGICIELS
un exeple !e s"ript !e logon- 'ui sera ex,"ut, par "5a'ue "lient- A "5a'ue "onnexion.
/%T7 : aprs +uel+ues tests, on s'aper'oit +ue le home de cha+ue user est lisible en (or'ant la
connexion 2non broHsable, mais on peut (orcer la main avec un /!T .&! K: OOnostromoOroot4# 7(in
d'viter cela vous pouveI utiliser la variable *lobale `& +ui symbolise le nom du user### !t entre les
directives suivantes :
[homes]
com[homes]
comment = Home Directoy de %S
valid users = %S
writeable = Yes
browseable = No

Sylvain CHERRIER page 7* sur 100 Aout 2010
Cours Linux Version 0.7
17.d - SWAT
8our r*ler ) distance et avec une inter(ace *raphi+ue votre serveur, vous pouveI vous connecter
avec n'importe +uel navi*ateur, de n'importe +uel %& et n'importe machine 2du moment +ue la
scurit le permet4 sur le serveur, pour peu +ue celui ci excute sHat 2&amba Geb 7dministration
Tool4# ;abituellement, ce service ;TT8 tourne sur le port 9J1

Sylvain CHERRIER page 7/ sur 100 Aout 2010
Cours Linux Version 0.7
18) Exercices
18.a - Connexion, premiers contacts
Re"oan!ation # Vour toute "oan!e- v,ri2ie. le 2on"tionneent ave" man &la
!o"uentation en ligne( # par exeple man ls
$onnecteI vous sur la machine#
$han*er votre mot de passe# 2si vous aveI le droit :92 4# ?ri(ieI le bon (onctionnement de votre mot
de passe#
7((icheI le nom de votre rpertoire courant
7((icheI le contenu de ce rpertoire#
!n utilisant 7lt V les touches de (onctions 2@1 ) @64, connecteI vous sur les di((rents terminaux#
7vec la commande ttM, a((icheI le nom du terminal# 8romeneI vous de terminal en terminal en
lan'ant di((rentes commandes 2ls, ttM, pwd, cd###4 et apprcieI le cot multiutilisateur de "inux#
KrEce ) la commande who, a((icheI tous les utilisateurs lo**us sur votre machine
$omment compter le nombre d'utilisateurs connects D $omment a((icher le temps de connexion D
2si vous aveI le droit4 "anceI un arr-t de la machine 2commande shutdown4# Remar+ueI l'arr-t de
tous les processus, et le messa*e indi+uant +ue tout est o<#
8our les salles +uipes de multi9boot Atei*neI la machine, puis redmarreI### 7u dmarra*e, vri(ieI
+u'il est possible de choisir l'un ou l'autre des %&# RetourneI sous "inux#
!n vous promenant dans l'arborescence 2la racine sous "inux est O4, noteI sur papier la structure des
rpertoires de votre machine 2sur deux niveaux uni+uement4# "a structure des rpertoires est peu ou
prou identi+ue sur les .ndx 2?oir http:OO(r#Hi<ipedia#or*OHi<iO@ilesysteml;ierarchyl&tandard 4
TesteI le rsultat de la commande cd - en la lan'ant plusieurs (ois#
"e bash 2l'interprteur de commande4 o((re une caractristi+ue intressante : la compltion 2terme
pas vraiment (ran'ais4 +ui complte automati+uement ce +ue vous tapeI, par l'appui de la touche
&;J :
&i la machine beep, c'est +u'il y a impossibilit 2rien ne correspond4
&i elle ne beep pas, mais +ue rien ne se passe, c'est +u'elle hsite# RappuyeI sur &;J pour +u'elle
vous liste l'ensemble de possibilits, et complteI un peu plus###
&i elle trouve sans ambi*umt, elle complte, +ue ce soit le nom d'un (ichier ou d'un excutable###
8our tester 2sans lancer l'excutable4, chercher si il existe un pro*ramme +ui commence par 9c#
"isteI l'ensemble des commande accessibles +ui commence par add#
Sylvain CHERRIER page 70 sur 100 Aout 2010
Cours Linux Version 0.7
3eme chose par user####
.tiliseI le pro*ramme cal +ui donne le calendrier pour l'anne 15>S# Cu'a t'elle de particulier D
2consulter le man ) ce su=et4#
7 +uoi sert la commande touch D
7 +uoi sert la commande free D TesteI la#
7 +uoi sert al commande top D TesteI la 2+ pour +uitter4#
7((icheI le contenu de rpertoire Oetc# 7((icheI les tailles des (ichiers, puis a((icheI9les par date de
dernire modi(ication#
7 +uoi sert la commande finger D TesteI la#
7 +uoi sert la commande write D TesteI la#
7 +uoi sert mesg D
Sylvain CHERRIER page 71 sur 100 Aout 2010
Cours Linux Version 0.7
18.b - Unix Utilisateur
8our ces exercices, point n'est besoin de commandes complexes### .tiliseI vos capacits de
dduction, le ash 2et sa compltion ma*i+ueNNN4, et deux trois commandes### 8reneI l'habitude de
(ar(ouiller### on coura*e####
$reI dans votre rpertoire trois sous9rpertoires 2Programmes, Oocuments, Personnel)#
Programmes et Oocuments doivent contenir deux rpertoires 2nomms anglais et franQais4
&upprimeI le rpertoire Personnel
"a scurit des utilisateurs sous .nix est stoc<e dans 6 (ichiers de con(i*uration 9 passwd,
shadow et group. $opieI passwd dans votre home#
Rherche5 ) l'intrieur les in(ormations vous concernant, et veri(ieI9les# /oteI vos numros 2le
premier est votre 0D, et le second le 0D de votre *roupe4#
$opieI maintenant le (ichier group cheI vous#
Renomme5 le en T!&T#*roup# Recherche5 y le numro, et vrifie5 le nom du *roupe
correspondant#
$reI un (ichier vide nomme essai dans votre home directory#
@aites en deux copies, nommes essai.) et essai#).copie#
Renomme5 essai en essai#(ichierlori*inal# /upprime5 ensuite ces trois (ichiers#
8armi les (ichiers de con(i*uration, il en existe un +ui liste l'ensemble des protocoles connus, et
donne le port +ui leur sont a((ects# 0l s'a*it du (ichier services, stoc< a l'endroit habituel des
(ichiers de con(i*uration# @aites en une copie dans votre home, +ue vous appelereI
fichierldeslports# 2/ota : &i vous ne vous souveneI pas oX trouver ces (ichiers de
con(i*uration, consulter http:OO(r#Hi<ipedia#or*OHi<iO@ilesysteml;ierarchyl&tandard 4
Sylvain CHERRIER page 77 sur 100 Aout 2010
Cours Linux Version 0.7
Rherche5 y le numero du port ::: 2le Heb4, celui du courrier sortant smtp, et celui du Heb
securise 2https4#
Cuelle commande permet en une (ois de copier le (ichier OetcO*roup et OetcOpassHd dans le sous
rpertoire Oocuments de votre home directory D
Cue remar+ueI vous concernant les extensions dans un systme de (ichiers .nix D
TesteI la commande file# 7 +uoi sert9elle D Cu'en penseI vous D
TesteI la commande suivante tou"5 testW1-2-*-/-0-1X# 8uis tou"5 testRa-@-"-!XW1-2-*-/X# Re*ardeI
le contenu de votre rpertoire# 7 +uoi sert ag D
:es S$TIR/ " < et = :iste5 tous les (ichiers dont le nom se termine par 1#
8uis ceux +ui contiennent un a#
/upprime5 tous les (ichiers de 6 caractres, et +ui ont un a en >eme#
/upprime5 tous les (ichiers test1 testS test6, mais pas les testa1, testaS,testb1 etc
/upprime5 tous les (ichiers dont le nom commence par test
/ous allons continuer ) prendre en mains le systme, *rEce ) des (ichiers de personnalisation#
"ors+ue vous vous connecteI, le bash 2si c'est votre shell par d(aut4 excute un certain nombre
de tEches, et notamment la lecture de (ichiers de con(i*uration# 8ar d(aut, il lit le (ichier
OetcOpro(ile 2*nral ) tous les utilisateurs4, puis cherche dans votre home directory la prsence
des (ichiers suivant 2dans l'ordre4 :
#bashllo*in
#bashlpro(ile
#pro(ile
"e point en ent-te du nom mas+ue automati+uement ce (ichier lors d'un ls 2seul l'option a permet
son a((icha*e4# $es (ichiers peuvent contenir des commandes +ui seront alors excutes avant de
vous donner l'accs au clavier# %n peut aussi y d(inir des variables d'environnement# 8ar
exemple, on peut lancer la commande umas< 2+ui d(init les droits par d(aut sur vos (ichiers et
Sylvain CHERRIER page 74 sur 100 Aout 2010
Cours Linux Version 0.7
rpertoires4, ulimit 2+ui limite vos processus4, des alias 2pour renommer une commande, a(in de la
rendre plus prati+ue, comme ll pour ls9al4, et d(inir 8&1 et 8&S 2+ui sont les prompts du shell,
c'est ) dire le texte indi+u sur la li*ne de commande#4 &i votre 8&1 vaut 'ed 9Y7 vous', alors le pc
a((ichera la date suivi de la (lche et 7 vous ) cha+ue commande# 2?ous trouvereI une
documentation dans in(o bash, mais voici +uel+ues raccourcis courant :
%d la date3 %h le nom de la machine 3 %: le nom complet3 %l le nom du terminal 3 %n
un saut de ligne3 %t l'heure 3 %u le nom de l'utilisateur3 %8 le r0pertoire courant ?ous
pouveI bien sMr mlan*er ces commandes avec des lettres alphabti+ues###4#
TesteI export P/)E4--Ft--C4 dans votre #pro(ile# 8uis amlioreI votre #pro(ile, en crant +uel+ues
alias de commandes 2man alias4, et en personnalisant votre 8&1 et 8&S#
Sylvain CHERRIER page 76 sur 100 Aout 2010
Cours Linux Version 0.7
18.c - File System
0l s'a*it de tester les possibilits du (ile system# !ssayeI de raliser les exercices, en r*lant les droits
pour l'utilisateur *uest 20l s'a*it de r*ler les proprits pour se prot*er de cet utilisateur : vri(ieI
ses caractristi+ues avant4#
!nsuite, (aites un telnet sur des postes voisins 2en tant +ue *uest NNN4, et testeI les droits sur ses
rpertoires###2&i le telnet ne marche pas, passeI simplement dans Ohome de votre machine###4
creI une arborescence pour vos pro*rammes dans votre home directory:


Tous ces rpertoires doivent vous appartenir, 2pas ) *uest, mais ) vousNNN4 et il sont en lecture seule,
et les (ichiers contenus 2creI en deux ou trois, m-me si vous ne connaissant le lan*a*e indi+u4
doivent -tre prot*# &eul le rpertoire binaire accepte +u'un *uest puisse y crire des (ichiers#
$reI ensuite un rpertoire O(tp# /ous l'utiliserons pour simuler le comportement d'un serveur (tp#
Dans celui ci, il y a deux rpertoires : pub et incomin*# Dans pub, vous pouveI voir et rcuprer tout
ce +ui s'y trouve# 8ar contre, vous n'aveI aucun droit de modi(ier, d'a=outer, ni d'e((acer des (ichiers#
Dans incomin*, vous pouveI entrer et dposer des (ichiers# 8ar contre, vous n'aveI m-me pas le
droit de lister le contenu 2un serveur (tp dpend d'un administrateur, +ui =u*era s'il est bon de publier
votre (ichier# 0l le dplacera alors vers pub# ?ous n'aveI en aucun cas le droit de lister les (ichiers +ue
d'autres ou vous m-me aveI d=) dpos en incomin*4# !ssayeI de crer ces deux rpertoires, et d'y
a((ecter les bons droits#
!ssayeI de crer un rpertoire aveu*le, dont seul le propritaire peut voir le contenu# $acher )
l'intrieur un rpertoire secret, lui en accs total ) tout le monde# "'ob=ecti( est de ne pas pouvoir
trouver ce rpertoire, mais pourtant d'y avoir un accs complet###
$onnecteI vous en tant +ue *uest sur votre machine, et vri(ieI 2utiliseI la commande touch par
exemple4#
Sylvain CHERRIER page 40 sur 100 Aout 2010
binaires sources
Rava $
pro*
Temp $ommun
Cours Linux Version 0.7
$eci termin, testeI les machines des autres# telnet est un pro*ramme +ui simule un terminal sur la
machine demande : tapeI telnet pcT1S, et vous sereI exactement comme si tieI physi+uement sur
cette machine# &ur l'cran virtuel, vous verreI les si*nes habituels d'une connexion 2lo*in, puis
passHord###4 .tiliseI le compte *uest, dont le passHord est soit rien, soit *uest#### .ne (ois connect,
vri(ieI les rpertoires cres et les droits correspondants# 2!n (ait, vous pouveI tout a (ait tester le
repertoire des autres directement sur votre machine# 3ais (aire un telnet est plus amusant, m-me s'il
n'apporte rien####4
18.d - Commande Find
trouveI les (ichiers dont la taille dpasse deux m*as#
$eux +ui vous appartiennent#
$eux accds dans la =ourne
7((icheI l'arborescence de Oetc
$eux dont les permissions TJJJ sont actives 2le &.0D, vritable b-te noire de l'administrateur###4
$eux suprieurs ) 1 3o, et pas accd depuis 1 mois 2utile pour l'administrateur4###
Cuelle commande utiliserieI vous pour compresser tous ces (ichiers 2*Iip###4
comment (aire pour supprimer partout tous les (ichiers crs par toto D
18.e - Liens
$opier le (ichier OetcOpassHd dans votre directory#
$reI deux liens sur ce (ichier passHd1 2lien en dur4 et passHdS 2symboli+ue4
vri(ieI par ls 9l les di((rences# $ompareI avec l'outil stat#
3odi(ieI les droits de passHd# ?ri(ieI les droits des trois (ichiersD
7=outeI une li*ne dans passHdS# ?ri(ier le contenu de passHd1 et passHd#
&upprimeI le (ichier passHd#
?ri(ieI le dtail des (ichiers passd# @aites un cat de passHd1 et de passHdS# Cue constateI vous D
$reI un lien sur un rpertoire# Cuel peut -tre l'intr-t de cette action D $onsulteI le rpertoire
OusrOsrc# Cue constateI vous D
$hercheI comment (aire apparaLtre les inodes avec ls#
!st ce +ue plusieurs noms dans le file sMstem peuvent pointer sur la meme inode D
$rer un rpertoire test# Re*ardeI l4inode de ce rpertoire# $reI des (ichiers dans ce rpertoire#
Re*ardeI toutes les inodes de ce rpertoire test#
Sylvain CHERRIER page 41 sur 100 Aout 2010
Cours Linux Version 0.7
$onsulteI le numro d'inode de Ousr# Remar+ueI le nombre de liens +ui pointe sur ce rpertoire NNN
$hercheI +uels peuvent bien -tre tous ces liens### $ette recherche devrait vous indi+uer comment on
construit un systme prtendument hirarchis 2une arborescence4 sur un support plat 2un dis+ue4NNN
7u dmarra*e, certaines distributions "inux utilise un systme hrit du &ystem ?# 0l s'a*it d'un
rpertoire 9et"9r".! +ui contient des sous rpertoires correspondant aux di((rents niveaux de
dmarra*e de la machine 2con(i*urs dans 9et"9initta@4# "es modes de dmarra*e habituels sont 6 ou
># ?isiteI tous ces rpertoires et essayeI de comprendre le mode de (onctionnement du dmarra*e
&ystem ?, et ce +ui se passe dans ces rpertoires#
Dans le m-me ordre d'ides, listeI le contenu du rpertoire 9et"9r".!9init.!.
?ous y trouvereI un script de lancement du service syslo* 2=ournal des vnements, +ui stoc<e tout
ce +ui se passe dans un ou plusieurs (ichiers, dont OvarOlo*Osyslo*, ou OvarOlo*Omessa*e, selon les
r*la*es de OetcOsyslo*#con( bien sMr4# TrouveI les liens dans les rpertoires OetcOrc#d +ui pointent sur
ce script 2&elon le type de liens utilis, il pourrait y avoir deux solutions# TrouveI les, et expli+ueI
pour+uoi c'est ce choix +ui a t (aitNNN4#
Sylvain CHERRIER page 42 sur 100 Aout 2010
Cours Linux Version 0.7
18.f - Redirections et pipes
!xercices prparatoires :
Dcrire le rFle des commandes suivantes :
cat ##################################################################################################################
echo ##################################################################################################################
less ##################################################################################################################
more ##################################################################################################################
wc ##################################################################################################################
grep ##################################################################################################################
sort ##################################################################################################################
cut ##################################################################################################################
uni+ ##################################################################################################################
7 +uoi sert le (ichier spcial OdevOnull D
"es R!D0R!$T0%/&
1# KrEce ) echo +ui permet d'a((icher un texte, a((icheI le texte :ma date de naissance est le ###:
S# $reI un (ichier +ui contient cette phrase, suivie du calendrier du mois de cette anne l)##
6# alleI dans la racine, et criveI une commande +ui liste l'ensemble des rpertoires et (ichiers +ui
vous sont interdits 2sous entendu : comment savoir tout ce +ui vous est interdit d'accs D4# I"i-
r,2l,"5isse... En 2ait- Il 2aut !%a@or! trouver "oent lister tout- et tout "e 'ui est !ans tout -et
tout "e 'ui est !ans tout 'ui est !ans tout- et" &an est votre ai(. Ensuite- !ans le "5aos o@tenu-
"e 'ui nous int,resse- 2inaleent- "e ne sont pas les @onnes r,ponses.. Uni'ueent les
auvaises. &ais ne passe. pas trop !e teps lA !essus- "e n%est pas 2a"ile A trouver- @ien 'ue "e
soit trHs siple... Vous pouve. passer A la suite- en laissant votre esprit r,2l,"5ir sur le
pro@lHe(
T# $reI un (ichier +ui contient la liste des (ichiers prsents dans votre rpertoire#
># 7=outeI ) ce (ichier la liste des utilisateurs connects#
6# 7lleI dans Otmp, et a((icher le contenu de l'ensemble des (ichiers## 2pas le nom des (ichiers, mais
les contenus de cha+ue (ichier4# RcupreI les messa*es d'erreurs dans un (ichier !rror
Sylvain CHERRIER page 4* sur 100 Aout 2010
Cours Linux Version 0.7
5# 3-me chose, en =etant les messa*es d'erreurs ) la poubelle#
U# "a commande echo permet d'envoyer un texte vers la sortie standard# !n utilisant cette
commande, a=outeI un texte en (in du (ichier de l'exercice prcdent# 7=outeI une li*ne de
sparation dans le (ichier 2une suite de W par exemple4
9# "a commande df a((iche un bilan des partitions, la commande mount a((iche un bilan des points
de monta*e et des partitions montes dessus, la commande uptime a((iche le temps depuis le+uel
le &! (onctionne : KrEce ces commandes, creI un (ichier 0"7/ +ui contient toutes ces
in(ormations, les unes aprs les autres#
1J#!n combinant avec des echo, et en exploitant les possibilits de chacune des commandes, essayeI
d'obtenir le (ichier le plus clair et le plus complet possible# 2nota : vous pouveI m-me tenter une
version en html, puis l'ouvrir avec un navi*ateur
11#Jc est une calculatrice en mode texte# "anceI l), et tapeI des oprations 2>VS 2valideI4 >dT
2valideI4 +uit 2pour arr-ter44# KrEce ) un diteur de texte 2nano, pico, ,oe, voire mc), creI un
(ichier +ui contient +uel+ues oprations 2une par li*ne4#
1S#7((icheI le contenu de ce (ichier#
16#DbrouilleI vous pour obtenir les rsultats des oprations dcrites dans ce (ichier#
1T#3-me chose, en rcuprant les rponses dans un (ichier nomm reponses#
1>#sachant +ue la commande mail user permet de lui envoyer un mail, essayer de lui envoyer
directement ce (ichier reponses
.n peu de r(lexion :
+ue (ait cat tout seul D 2un peu d'aide si vous -tes blo+u, $TR"VD simule la (in de (ichier au
clavier4 8our+uoi D
!xpli+ueI comment marche cat fichier D
7 +uoi sert cat ' fichier D
7 +uoi sert cat '' fichier D
$hercheI le rFle de la commande sort#
AcriveI plusieurs mots 21 par li*ne4 dans un (ichier test.mots.
Sylvain CHERRIER page 4/ sur 100 Aout 2010
Cours Linux Version 0.7
7((icheI cette liste trie, *rEce ) la commande sort#
Cue (ait sort tout seul D
!t sort ' fichier D
"es 808!&
-tilisateurs connect0s ; commande 8ho
-tilisateurs connus ; getent pass8d
1# listeI les utilisateurs connects, et envoyeI le tout dans un (ichier
S# listeI les utilisateurs connects, et trieI les par nom
6# listeI les utilisateurs connus, trieI les par nom et envoyeI le tout dans un (ichier
T# listeI tous les utilisateurs connects, uni+uement leurs noms, et trieI le rsultat
># listeI tous les utilisateurs connus, uni+uement leurs noms, et trieI le rsultat
6# .n (ichier access.log vous est (ourni sur ma pa*e# Ce sont les in2orations 'ue !onne un serveur
:e@ A propos !e toutes les visites 'u%il a reLues. 7((icheI son contenu# $ompteI le nombre
d'accs total#
5# 7((icheI tous les accs ) la pa*e HJJtHJJt
U# compteI le nombre d'accs ) la pa*e HJJtHJJt
9# compteI le nombre d'accs ) cette pa*e pour deux ou trois =ours prcis
1J#$hercheI les accs en error 2le code TJT est le code +ui permet de reconnaLtre une pa*e en
erreur4# 7ttention, TJT peut apparaLtre aussi dans une taille de (ichier 21TJTS par exemple, +ui
pourrait -tre la taille d'une ima*e4
11#$ombien y 'a t'il de pa*es en erreur D
1S#"es pa*es HJJtHJJt sont des tentatives d'atta+ues# RcupreI les adresses 08 des machines +ui
vous atta+uent#
Sylvain CHERRIER page 40 sur 100 Aout 2010
Cours Linux Version 0.7
16#!limineI les doublons# $ombien y 'a t'il de machines di((rentes +ui vous ont atta+u D
1T#"ister les di((rents navi*ateurs +ui ont visit votre site 2dernier champ4
1>#la commande cat permet d'a((icher le contenu d'un (ichier, et d est un caractre =o<er +ui veut dire
n'importe +uel ensemble de caractres# DonneI la commande +ui permet d'a((icher le contenu d'un
ensemble de (ichiers
16#a((icheI toutes les li*nes des vos pa*es Heb
15#compteI le nombre de li*nes de vos pa*es Heb
1U#a((icheI la liste de tous les processus
19#rechercheI tous les processus bash +ui tournent actuellement
SJ#rechercheI tous les processus bash tris par tty et croissant
S1#Revenons aux utilisateurs connus# 7((icheI le nom de tous les tudiants 2=uste leur nom et
prnom4
SS#TrieI tout par nom# $ompteI le nombre de personnes +ui peuvent se connecter#
S6#/e slectionneI +ue les noms de (amilles# $ombien y a t'il de noms de (amilles di((rent D
ST#Cuels sont les noms de (amille +ui apparaissent plusieurs (ois D 2(aites un man uni+4
S>#la commande tr permet de trans(ormer les caractres# "a mise en ma=uscules se (ait de la (a'on
suivante : tr ba9If b79cf : !xpli+ueI pour+uoi#
S6#.tiliseI la commande tr pour a((icher tous les noms des utilisateurs connus en ma=uscules#
S5# RechercheI tous les utilisateurs dont le prnom est pauline 2en i*norant la casse4 : 2S (a'ons de
(aire#4
Sylvain CHERRIER page 41 sur 100 Aout 2010
Cours Linux Version 0.7
18.g - Processus.
7((icheI les processus acti(s *rEce ) la commande ps
lanceI la commande plusieurs (ois# Cuels sont les processus a((ichs D Cue remar+ueI vous
concernant les pids D
TesteI l'option x de ps# Cu'obteneI vous D
%bteneI tous les processus avec l'option a#
TesteI maintenant avec x et a en m-me temps, puis a=outeI l'option l#
top permet de savoir l'activit de votre machine, ) intervalle r*uliers# "anceI cette commande# Top
lit votre clavier, et ra*it ) votre (rappe# TapeI + pour +uitter#
RelanceI top, et observeI les processus prsents# 0l est possible de modi(ier les champs a((ichs 2en
a=outer, en supprimer4 *rEce ) la commande (ield 2(4# 7=outeI le 880D, l'.0D#
ReveneI maintenant sur votre machine, et consulteI la documentation de top, notamment le sens de
T03!, de load avera*e, de `$8., de &T7T#
KrEce ) la commande <, essayeI d'arr-ter un processus#
"ancer une recherche du (ichier x(U6con(i* en tache de (ond 2sur un autre terminal, de (a'on ) laisser
top tourner4#
"an'ons un pro*ramme bien plus lon*# RechercheI en tache de (ond tous les (ichiers dans toutes
l'arborescence +ui contienne le mot nameserver# %bserveI ce +ui se passe dans top#
?ri(ieI si le pro*ramme inetd tourne en mmoire#
@aites apparaLtre l'arborescence de vos taches 2essayeI sans 1, puis 1 c'est ) dire connect en mode
*raphi+ue4#
listeI les processus# $hoisisseI en un, et essayeI de l'arr-ter#
RepreI votre processus bash# TueI le# Cue se passe t il D
!ssayeI de tuer le processus init#
RechercheI le processus lo*in +ui vous concerne# TueI le#
0ma*ineI ce +ue donnerait un <ill 91 du pro*ramme init#
AcriveI le (ichier suivant dans votre home#
kNObinOsh
Hhile :
do
date 'Vil est `T'
Sylvain CHERRIER page 47 sur 100 Aout 2010
Cours Linux Version 0.7
sleep 6J
done
$e (ichier, +ue vous appellereI comme vous voudreI, est un petit script shell# 0l excute sans (in
l'a((icha*e de l'heure, toutes les minutes# RendeI ce script excutable 2chmod Vx /om&cript4, ou
clic< sur la proprit correspondante en mode *raphi+ue, et lanceI le en tache de (ond#
?ri(ieI +ue vous rcupreI la main, et +ue l'heure s'a((iche r*ulirement# ?ri(ieI avec ps les
di((rentes taches actives 2option 9l4# TueI ensuite cette tache#
Sylvain CHERRIER page 44 sur 100 Aout 2010
Cours Linux Version 0.7
18.h - Files System, mount, et formatage
1# @ormateI une dis+uette
S# metteI un (ile system dos sur cette dis+uette, monteI la dans un rpertoire Otest, puis copieI un
(ichier dessus### DmonteI la dis+uette#
6# 0nstalleI un (ile system "inux sur la dis+uette, monteI la, et vri(ieI les points de monta*e de
votre machine###
T# creI une dis+uette de boot 2consulter le (ichier OetcOlilo#con( pour connaLtre le nom et
l'emplacement du noyau utilis sur votre machine4# ooteI avec cette dis+uette# Doit9on crer un
(ile system dessus D
># Dans OhomeOdivers, vous trouvereI deux ima*es de dis+uettes boot et root 2dmarra*e de "inux4#
KnreI les dis+uettes correspondantes, et testeI9le###
6# 3onteI un cdrom dans votre arborescence, puis copieI un des (ichiers du cd sur la dis+uette###
7prs vri(ication, dmonteI tout###
5# 3onteI un cdrom d'installation de "inux 2distrib de votre choix4, et consulteI l'arborescence# P a
t9il des ima*es pour dmarrer l'installation de linux# Dans +uel rpertoire D P a t9il une aide D
Cuels sont les ima*es ) choisir D
U# "e serveur apollo o((re un rpertoire Otest en n(s# 3onteI ce parta*e dans le Omnt de votre
machine, et consulteI le contenu de ce rpertoire# "iseI le contenu du messa*e +ui vous y
attend###
9# "a machine 8$>15 est une machine HindoHs +ui o((re des parta*es rseaux en /etbios### 7prs
vri(ication +ue votre machine le supporte 2dsol si ce n'est pas le cas4, essayeI de voir le
contenu du rpertoire echan*e de la machine pc>15#
1J#?otre dis+ue dur contient un rpertoire de sHap linux# 0l existe une astuce ) ce propos# 0ma*ineI
+ue vous devieI (aire une nouvelle installation de linux sur votre machine, or vous ne possdeI
pas de solution de sauve*arde# 0l est possible d'utiliser temporairement cette partition pour y
sauve*arder votre home directory, d'installer la nouvelle version de linux, de restaurer le home,
puis de reactiver le sHap# !ssayeI de (aire cette sauve*arde# Cuand elle est (aite, testeI la, puis
ractiveI le sHap###
8& : 7 partir de l'exercice >, lanceI vi sur un terminal, et consi*neI toutes les solutions dans un
(ichier exo@&
$ommandes ) connaLtre, et ) consulter###
"pio !! !2 2ree ount uount ;2s et ses !,riv,s ;s:ap s@"lient
s:apon s:apo22 tar
Sylvain CHERRIER page 46 sur 100 Aout 2010
Cours Linux Version 0.7
18.i - Shell Scripts
@aire un script +ui a((iche la date, le rpertoire courant, et le nombre de (ichiers de ce rpertoire
3odi(ieI le script prcdent pour +u'il (asse la m-me chose pour un rpertoire pass en ar*ument
3odi(ieI le script prcdent pour +u'il vri(ie +u'on lui donne bien un ar*ument, et +ue cet ar*ument
soit bien un rpertoire#
Acrire un script +ui rend excutable le (ichier pass en ar*ument 2trs prati+ue, n'est ce pas DD4#
0ntroduire des tests pour vri(ier sa validit 2ne rendre excutable +ue des scripts NNN4
Acrire un script +ui vri(ie si la personne dont le nom est pass en ar*ument est lo** sur la machine#
Acrire un script +ui tue un processus par son nom#
Acrire un shell +ui recherche tous les liens 2symboli+ues ou non4 sur un (ichier, et les a((iche#
Acrire un script +ui recherche un (ichier ) partir d'un certain point de l'arborescence, et limine les
messa*es d'erreur 2l'ob=ecti( est de simpli(ier l'invocation de (ind4#
Acrire un script loop +ui permet la cration d'une suite de nombres 2par exemple loop 1 SJ sort tous
les nombres de 1 ) SJ4# &e servir de cette commande pour pin*er toutes les machines de la salle###
crire un script +ui prend en ar*ument le nom d'un utilisateur, et sort les in(ormations le concernant
sous la (orme :
lo*in :
/om $omplet :
Rpertoire :
&hell :
Acrire un script procuser +ui donne l'ensemble des processus appartenant ) un utilisateur donn en
ar*ument# ?otre script doit vri(ier sa bonne invocation, et sinon a((icheI le messa*e suivant:
.sa*e : procuser /om.ser
Acrire un script d'administration de la machine : sachant +ue la commande d( permet de connaLtre
l'occupation des dis+ues durs, et +ue le =ournal des vnements de votre machine s'appelle
syslo*syslo*, 2(aire un man d(, et contrFleI le contenu de OetcOsyslo*#con(, +ui est le (ichier de
con(i*uration du syslo*4, construiseI un (ichier bilan a((ichant tous les lo*ins de root, les points de
monta*e, l'occupation des partitions# !nvoyer ce (ichier par mail ) root#
3odi(ieI le script +ui rend acti( un script 2exercice T4 en lui (aisant a=outer des commentaires sur la
date de cration, l'auteur, et une petite description du script 2par exemple, =e lance en passant en
ar*ument le (ichier ) activer, mon nom est demand, ainsi +ue l'ob=ecti( du script : le tout est a=out
et bien prsent en dbut du script4# $ela permet de bien documenter et de standardiser###
Acrire un script menu, char* de lister des options en les numrotant, et de demander ) l'utilisateur
de (aire son choix# &i ce choix est valide, on +uitte le script en rendant le chi((re choisi par
l'utilisateur# "es di((rentes options du menu sont passes en ar*ument lors de l'appel ) menu
27ttention ) l'0@& : il y a deux solutions envisa*eables###4# TacheI de bien raliser ce travail, il vous
sera utile###
Sylvain CHERRIER page 60 sur 100 Aout 2010
Cours Linux Version 0.7
18.j - Exercices compilation et patch du noyau.
Tlchar*eI ou rcupreI les sources compltes de l'avant dernire version de votre noyau 2en
(ormat t*I, ou tar#bIS4
!n ayant soin de bien pointer les cons+uences, dcompacteI les sources 7. %/ !/DR%0T#
$reI le lien symboli+ue sur le nouveau noyau#
"anceI la con(i*uration du noyau#
$ompileI votre noyau, et les modules####
Dans un but de test, preneI une dis+uette, et (ormateI la#
Dupli+ueI le noyau sur la dis+uette#
ooteI ensuite avec cette dis+uette, et vri(ieI le bon (onctionnement du noyau###
&i votre noyau est :bancal:, recon(i*ureI le, et recompileI le#
"ors+ue vous disposeI d'un noyau oprationnel, modi(ieI le lilo#con(, a(in de proposer le dmarra*e
de ce nouveau noyau, et *ardeI un accs ) l'ancien NN
?ri(ieI le bon (onctionnement du dmarra*e 2ancien et nouveau4#
RcupreI maintenant le patch du dernier noyau#
8atcheI votre noyau#
/'oublieI pas de renommer le rpertoire, et de vri(ier la validit du lien symboli+ue#
RecompileI le noyau, installeI le, et testeI le 2laisseI tou=ours une possibilit de dmarrer l'ancier4#
3odules : $ompileI maintenant votre noyau en activant les modules, et en dsactivant le \ <ernel
module loader ] 2le char*eur automati+ue de module, <mod4# $hoisisseI les options correspondantes
) votre machine 2par exemple pas de &$&0, 0D!, chipset ?07, carte mre 800, processeur 7thlon,
carte rseau compile en dur, etc4# Dans la partie @ile system, vous compilereI 3&D%&, @7T et
?@7T en modules###
$ompileI les modules, installeI les, et modi(ieI votre loader###
TesteI votre noyau###
?ri(ieI les messa*es du noyau 2dmes* [ less4
!ssayeI de monter une partition ou une dis+uette GindoHs# Cue se passe t'il D
.tiliseI insmod pour insrer le module v(at dans le noyau 2attention, vous vous apercevreI +ue v(at
dpend de (at, +ui dpend de msdos4
?ri(ieI +ue le monta*e (onctionne###
"isteI les modules du noyau, puis supprimeI les###
TesteI maintenant la commande modprobe v(at# Cue se passe t il D
RecompileI votre noyau, en a=outant le \ <ernel module loader ]#
TesteI votre noyau# 3onteI un support v(at### Cue se passe t il D
Sylvain CHERRIER page 61 sur 100 Aout 2010
Cours Linux Version 0.7
3alheureusement, tout n'est pas tou=ours aussi simple### "es modules sont passionnants, car il
permettent l'a=out de (onctionnalit ) la vole### !n e((et, vous pouveI tou=ours compiler des modules
2par ma<e menucon(i*h ma<e deph ma<e moduleshma<e moduleslinstall, puis un modprobe et le tour
est =ou, sans arr-ter le noyau courant NNNN4
RecompileI votre noyau, avec le <ernel module loader, et votre carte rseau en module###
RedmarreI avec ce nouveau noyau###
!ssayeI de con(i*urer votre carte rseau 2i(con(i* ethJ 19S#xxx#xxx#xxx4
8our+uoi cela ne (onctionne pas D 2+u'est ce +ue le <mod essaye de rsoudre D4
,ed:at3Mandra*e 2e1ian
7=outeI dans le (ichier OetcOmodules#con( la li*ne
suivante
alias eth2 driver 2par exemple alias ethJ 6c>9x4
7=outeI dans le (ichier O!tcOmodutilsOaliases la
li*ne
alias eth2 driver 2par exemple alias ethJ 6c>9x4
puis lanceI la commande :
update9modules
RelanceI maintenant la commande i(con(i*### $a marche NNN
Sylvain CHERRIER page 62 sur 100 Aout 2010
Cours Linux Version 0.7
18.k - Sauvegardes, package, et dmarrage de la machine...
@ormateI une dis+uette, et sauve*ardeI votre home, sans (aire de (ile system###
RcupreI ensuite le contenu de la sauve*arde dans un sous rpertoire de tmp###
Re(ormateI la dis+uette, et trans(ormeI la en dis+uette bootable
dmarreI votre machine avec#
RedmarreI normalement#
8our la suite de l'exercice, nous allons installer un serveur de neHs sur vos machines# ?ous devreI
crer des (orums, et vri(ier le bon (onctionnement ) partir d'une machine distante# !n(in, vous
devreI automatiser le dmarra*e du service###
"e serveur de courrier s'appelle !nter3et 3ews server (inn). ?ous devrieI trouver pac<a*e
d'installation sur les cd d'ori*ine de votre distributions# 2!ssayeI de tout (aire en inter(ace texte NN
7ttention aux dpendances NNN4
###########################################################################################################################
###########################################################################################################################
###########################################################################################################################
.ne (ois le pac<a*e install, vous alleI devoir con(i*urer le serveur : RendeI vous dans /etc/ne8s "e
(ichier inn#con( contient des in(ormations sur votre serveur, par exemple or*aniIation ou (romhost,
+ui apparaLtront dans vos posts 2=eteI un coup d'oeil ) ce (ichier##4# "e (ichier nnrpaccess contient la
liste des machines +ui peuvent consulter votre serveur de neHs, et y dposer des posts# De base, tout
est (erm : la syntaxe des li*nes de ce (ichier est :
a"5ine#perissions&Rea!Vost(#noutilisateur#ot!epasse#group
# Default to no access
*:: -no- : -no- :!*
# Allow access from localhost
localhost:Read Post:::*
"a lecture de ces r*la*es +ui interdisent tout accs ) tout le monde, sau( ) la machine localhost,
devrait vous permettre de deviner comment (aire exactement l'inverse 2accs ) tout le monde NNN4
!nsuite, dans une utilisation relle, on devrait indi+uer les sites distants, avec +ui vous chan*ereI
tous les posts# 0ci, nous n'installerons pas cette possibilit 2sinon, modi(ieI le (ichier
/etc/ne8s/ne8sfeed4
!n(in, pour indi+uer la liste des (orums +ue nous relaierons 2ou ventuellement pas NNN4, vous deveI
con(i*urer le (ichier /var/li1/ne8s/active#
control 0000000000 0000000001 y
control.cancel 0000000000 0000000001 y
junk 0000000000 0000000001 y
test 0000000000 0000000001 y
to 0000000000 0000000001 y
espacefoch 0000000001 0000000001 y
administratif 0000000001 0000000001 y
Sylvain CHERRIER page 6* sur 100 Aout 2010
Cours Linux Version 0.7
"es 6 ou T premires sont plus ou moins standards, et vous pouveI crer vos propres neHs*roups
ensuite 2ici espace(och, et administrati(4# "es deux nombres suivants sont le himar< et le loH mar<
2voir man active4, et la lettre 2y4 indi+ue +ue l'envoi de posts est possible 2encore man active4#
$reI vous +uel+ues neHs*roups, puis lanceI le serveur innd 2.tiliseI si possible les consoles
virtuelles : sur une vue, (aites un tail-f /var/log/messages a(in de voir les messa*es d'erreurs, sur une
autre, lanceI le serveur 2) vous de trouver comment4#
#########################################################################################################################################################
#########################################################################################################################################################
#########################################################################################################################################################
&ous un lecteur de neHs 2ventuellement en mode *raphi+ue4 , essayeI de rcuprer, puis d'crire
des posts NNN4#
#########################################################################################################################################################
#########################################################################################################################################################
#########################################################################################################################################################
Cuand tout (onctionne, modi(ieI les scripts de dmarra*e pour +ue le serveur ne dmarre
automati+uement +u'en init ? et pas en init >#
#########################################################################################################################################################
##########################################################################################################################################################
DsinstalleI ensuite entirement le lo*iciel####
#########################################################################################################################################################
##########################################################################################################################################################
&achant +ue vous disposeI de 6 consoles texte, et d'une septime *raphi+ue, essayeI de ra=outer S
consoles 2la U et la 94# RedmarreI la machine pour vri(ier +u'elles existent#
#########################################################################################################################################################
##########################################################################################################################################################
?otre systme d'exploitation consi*ne tous les vnements dans di((rents (ichiers dits :de lo*:# "'un
de ses (ichiers est /var/log/messages# "a commande /usr/1in/tail -f permet de visualiser en continu le
contenu de ce (ichier 2testeI cette commande sur une vue, puis lo**uer vous en root sur une autre
a(in de tester4# 0ma*inons +ue vous vouleI, dans le cadre de l'exploitation d'un serveur, avoir
tou=ours une vue a((ichant le contenu de ce (ichier : 7=outer une dixime vue, sur la+uelle
automati+uement cet a((icha*e aura lieu 2au lieu d'un lo*in4# 8& : il y a une petite di((icult###
/'hsiteI pas ) tester NNN
#########################################################################################################################################################
##########################################################################################################################################################
Sylvain CHERRIER page 6/ sur 100 Aout 2010
Cours Linux Version 0.7
18.l - Serveurs et dmons...
$reI un rpertoire public sous la racine
exporteI le en /@& en lecture criture# ?ri(ieI avec un client +ue l'on peut se connecter# $reI un
(ichier avec la commande touch#
7=outeI une nouvelle exportation : Oessai
$onnecteI un client#
3etteI en place un serveur (tp anonyme sur votre machine# 7ttention, liseI bien la documentation :
0l (aut installer les commandes dans l'arborescence du serveur### $reI un petit texte de bienvenue, et
un second texte +ue vous nommereI avis#
"anceI votre serveur, et vri(ieI le bon (onctionnement avec un client#
$ertains services passent par inetd# ?ri(ieI le bon (onctionnement de celui ci, en coupant l'accs )
telnet 2il su((it de commenter la li*ne concernant ce service dans le (ichier de con(i*uration4#
RedmarreI ensuite le super serveur inetd pour vri(ication#
0nstallons maintenant un serveur &a3a# $e serveur permet d'o((rir un accs transparent aux clients
/etios 2c'est ) dire aux machines GindoHs4#
$reI un rpertoire Osamba#
8arta*eI ce rpertoire en lecture seule pour les clients GindoHs 2testeI la con(i*uration avec
testparm4#
"anceI le serveur, et vri(ieI le (onctionnement avec un ou plusieurs clients GindoHs#
0l est possible de con(i*urer &amba ) distance, en utilisant un navi*ateur G!# !n e((et, il existe un
serveur &G7T +ui o((re un cran de contrFle en ;TT8D, sur le port 9J1#
!ssayeI d'activer ce service sur votre machine, et connecteI vous ) partir de n'importe +uel type de
client 2Gin ou "inux###4
KrEce ) &G7T, modi(ieI la con(i*uration de &amba 2%& "evel par exemple###4
Sylvain CHERRIER page 60 sur 100 Aout 2010
Cours Linux Version 0.7
19) Exercices rcapitulatifs
1# connecteI vous
S# chan*eI de passHord
6# inspecteI votre home directory
T# remonteI ) la racine
># a((icheI le contenu
6# alleI dans etc et listeI son contenu
5# a((icheI le contenu de passHd, et de inittab
U# testeI les di((rentes commandes cat, more et less
9# retourneI dans votre home directory
1J#listeI les utilisateurs connects, et envoyeI le tout dans un (ichier
11#listeI les utilisateurs connects, et trieI les par nom
1S#listeI les utilisateurs connus, trieI les par nom et envoyeI le tout dans un (ichier
16#listeI tous les utilisateurs connects, uni+uement leurs noms, et trieI le rsultat
1T#listeI tous les utilisateurs connus, uni+uement leurs noms, et trieI le rsultat
1>#criveI une commande +ui donne le nombre d'entres des rpertoires suivants: Ousr Obin Ovar Oetc
16#criveI une commande +ui liste la taille et le nom des (ichiers, dans l'ordre croissant 2pipes asseI
complexe, essayer d'abord de lister les (ichiers, puis de couper comme il (aut 2il y a un problme
d'espace, voir tr4, puis de ne rcuprer +ue les bons champs, et en(in de trier###
15#?0 !ditor :
!n tant +ue simple utilisateur, creI un rpertoire travaux dans votre home directory
copieI OetcO(stab
renommeI le en (stab#test
Ce 2i"5ier "ontient les ontages stan!ar! sur votre a"5ine &"%est A !ire !ans 'uel r,pertoire
verra7ton tel p,rip5,ri'ue...(
!n ima*inant +ue vous disposeI d'un nouveau dis+ue dur 2hdb4, coup en deux partitions 2hdb1
contenant un (ile systm dos, et hdbS contenant un (ile system "inux +ui correspondra ) Ohome4,
modi(ieI le (ichier (stab#test#
%n ima*ine maintenant +ue vous chan*eI de hard 2plus de 0D!, tout en &$&04# "e nouveau nom
des priphri+ues est sda et sdb###
3odi(ieI le (stab en cons+uence
1U#Vous save. g,rer les a!resses IV !es a"5ines. Vous save. 'ue vous pouve. pinger une a"5ine
!ont vous "onnaisse. l%a!resse. Si vous voule. pinger une a"5ine par son no- vous !eve. #
Soit !ispose. !%un D+S !ont vous sere. "lient- soit renseigner le 2i"5ier 9et"95osts
&"orrespon!an"e no et a!resse IV(
Sylvain CHERRIER page 61 sur 100 Aout 2010
Cours Linux Version 0.7
pin*er des machines voisines
noteI leurs adresses, et donneI leur un nom
remplisseI le (ichier hosts
pin* le nom de la machine
connecteI vous au serveur de cette machine 2http:OOnomO4
19#3odi(ieI le nom de votre machine 2(ichier ;%&T/73!4
SJ#LIL3 est le loa!er &le lan"eur( !%3S !e Linux. Il vous peret !e "5oisir pari plusieurs
versions !e Linux- et !e lan"er !%autres 3S. Il est "oan!, par le 2i"5ier lilo."on2 &!ans 9et"(-
et le petit prograe loa!er est 2a@ri'u, par la "oan!e lilo. Ce petit prograe sera
install, A l%en!roit in!i'u, par la "oan!e @oot. Vour 2a@ri'uer !e nouvelles entr,es- il su22it
!e r,"r,er une iage &le no !u 2i"5ier noyau( et !%y asso"ier un la@el &le no 'ue lilo vous
proposera...(. Lors'ue l%on et A Four son noyau Linux &re"opil- ise A Four(- il est "onseill,
!e re"r,er un lilo- pour pouvoir re@ooter sur l%an"ien iage en "as !e plantage !e la nouvelle.
$reI une nouvelle entre dans le lilo, de (a'on ) dmarrer la m-me ima*e avec le nom monlinux
2il y aura trois choix : monlinux, linux et dos4
Sylvain CHERRIER page 67 sur 100 Aout 2010
Cours Linux Version 0.7
Table des matires
14 ;istori+ue 14 ;istori+ue######################################################################################################################################### #########################################################################################################################################1 1
S4 Descripti( .nix *nri+ue S4 Descripti( .nix *nri+ue################################################################################################################# #################################################################################################################1 1
S#a 9 8rise de contact########################################################################################################################6
S#b 9 0nitiation aux droits 2excuter, lire, crire, traverser, etc#4######################################################T
S#c 9 Dmarra*e 7rr-t de la machine###############################################################################################>
S#d 9 Acrans ?irtuels########################################################################################################################>
S#e 9 Dmarra*e et arr-t de session##################################################################################################6
S#( 9 $ommandes de rpertoires#######################################################################################################6
S#* 9 $ommandes de (ichiers############################################################################################################U
64 les aides 64 les aides############################################################################################################################################ ############################################################################################################################################ U U
T4 "'entre et la sortie standard T4 "'entre et la sortie standard############################################################################################################# #############################################################################################################9 9
T#a 9 Redirections#############################################################################################################################9
T#b 9 pipes et commandes (iltres associes#######################################################################################9
T#c 9 les (iltres#################################################################################################################################1J
>4 ?0 >4 ?0#################################################################################################################################################### ####################################################################################################################################################11 11
>#a 9 "e principe de (onctionnement###############################################################################################11
>#b 9 "e mode commande :#############################################################################################################1S
0.@.1( Les o@Fets # ................................................................................................................................ 12
0.@.2( Voyons 'uel'ues "oan!es aintenant #................................................................................12
0.@.*( Coan!es !e !,pla"eent et !e re"5er"5e.............................................................................1*
>#c 9 8asser en mode insertion########################################################################################################1T
0.".1( Le o!e 2in !e ligne................................................................................................................... 1/
64 "e systme de (ichiers de "inux 2extended S @&4 64 "e systme de (ichiers de "inux 2extended S @&4########################################################################### ###########################################################################16 16
1.0.1( Les liens..................................................................................................................................... 16
1.0.2( La "oan!e 2in!..................................................................................................................... 20
54 "es processus# 54 "es processus################################################################################################################################# ################################################################################################################################ S1 S1
5#a 9 Cu'est ce +u'un processus D####################################################################################################S1
5#b 9 "es tats d'un processus#########################################################################################################SS
5#c 9 "es tEches de (ond#################################################################################################################SS
5#d 9 3anipulation des primitives du systme################################################################################SS
5#e 9 les processus di((rs##############################################################################################################S6
5#( 9 les commandes########################################################################################################################ST
U4 "es @iles &ystems U4 "es @iles &ystems############################################################################################################################ ############################################################################################################################ST ST
U#a 9 les commandes#######################################################################################################################S>
4.a.1( Le 2oratage !e @as niveau &les !is'uettes(..............................................................................20
4.a.2( le 2oratage 5aut niveau &Eile Syste(.....................................................................................20
4.a.*( le ontage................................................................................................................................. 20
4.a./( RYle !e 9et"92sta@....................................................................................................................... 27
Sylvain CHERRIER page 64 sur 100 Aout 2010
Cours Linux Version 0.7
4.a.0( Autres prograes asso"i,s.....................................................................................................27
4.a.1( le "as parti"ulier !u s:ap..........................................................................................................24
U#b 9 @ile &ystem, ou pas D#############################################################################################################SU
U#c 9 @ile &ystem ou pas 2suite4######################################################################################################S9
94 &auve*ardes et 8ac<a*es 94 &auve*ardes et 8ac<a*es################################################################################################################ ################################################################################################################61 61
9#a 9 dd###########################################################################################################################################61
9#b 9 tar###########################################################################################################################################61
9#c 9 cpio########################################################################################################################################66
9#d 9 "es pac<a*es##########################################################################################################################6T
6.!.1( RV$........................................................................................................................................... */
6.!.2( DE?IA+..................................................................................................................................... *0
1J4 "a *estion des utilisateurs 1J4 "a *estion des utilisateurs############################################################################################################# #############################################################################################################6> 6>
1J#a 9 OetcOpassHd###########################################################################################################################66
1J#b 9 OetcO*roup#############################################################################################################################66
1J#c 9 OetcOshadoH##########################################################################################################################65
114 0es scripts &;!"" 114 0es scripts &;!""######################################################################################################################## ######################################################################################################################## 69 69
11#a 9 "es =o<ers#############################################################################################################################69
11#b 9 "e +uotin*, la dspcialisation et l'valuation######################################################################69
11#c 9 Alaboration d'un pro*ramme &;!""##################################################################################T1
11.".1( Vro",!ures A suivre................................................................................................................. /1
11#d 9 "es ar*uments######################################################################################################################T1
11#e 9 "es variables#########################################################################################################################T1
11.e.1( la "oan!e export................................................................................................................. /2
11.e.2( La "oan!e set...................................................................................................................... /2
11#( 9 "a commande read###############################################################################################################T6
11#* 9 "a commande test :##############################################################################################################TT
11#h 9 &yntaxe################################################################################################################################TT
11.5.1( Les tests sur les no@res.........................................................................................................//
11.5.2( Les tests sur les "5aKnes...........................................................................................................//
11.5.*( Les tests sur les 2i"5iers...........................................................................................................//
11.5./( Exeples !e tests..................................................................................................................... //
11#i 9 "es structures de contrFle#####################################################################################################T>
11.i.1( D,2inition.................................................................................................................................. /0
11.i.2( La stru"ture 2or......................................................................................................................... /0
11.i.*( La stru"ture i2........................................................................................................................... /1
11.i./( La stru"ture "ase...................................................................................................................... /7
11.i.0( La stru"ture :5ile..................................................................................................................... /7
11.i.1( La stru"ture until...................................................................................................................... /7
11.i.7( La "oan!e exit..................................................................................................................... /4
11.i.4( La "oan!e @rea;.................................................................................................................. /4
11.i.6( La "oan!e "ontinue............................................................................................................./4
11.i.10( La "oan!e expr.................................................................................................................. /4
11.i.11( La "oan!e . &point(............................................................................................................/6
11.i.12( La "oan!e # & 2 points(....................................................................................................../6
11.i.1*( La "oan!e exe".................................................................................................................. /6
11.i.1/( les re!ire"tions....................................................................................................................... /6
Sylvain CHERRIER page 66 sur 100 Aout 2010
Cours Linux Version 0.7
11.i.10( la "oan!e s5i2t................................................................................................................... 00
11.i.11( la "oan!e set..................................................................................................................... 00
11.i.17( le repla"eent !e varia@les.................................................................................................00
11.i.14( La valeur !e retour................................................................................................................. 01
11.i.16( Les sous prograes.............................................................................................................01
11.i.20( les astu"es............................................................................................................................... 01
1S4 0/0T, ou comment tout dmarre 1S4 0/0T, ou comment tout dmarre################################################################################################## ################################################################################################## >6 >6
1S#a 9 Rsum du lancement:#########################################################################################################>6
164 "a compilation du noyau 164 "a compilation du noyau############################################################################################################## ##############################################################################################################>5 >5
16#a 9 con(i*uration########################################################################################################################>5
16#b 9 dpendances et nettoya*e####################################################################################################>U
16#c 9 $ompilation##########################################################################################################################>U
16#d 9 $ompilation et installation des modules###############################################################################>9
16#e 9 "ancement du nouveau noyau##############################################################################################>9
16#( 9 $as particulier du patch########################################################################################################61
1T4 0/!TD, le super serveur 1T4 0/!TD, le super serveur############################################################################################################## ############################################################################################################## 6S 6S
1>4 xinetd, une volution du super serveur### 1>4 xinetd, une volution du super serveur######################################################################################### ######################################################################################6> 6>
164 08$;70/& et 08T7"!& 164 08$;70/& et 08T7"!&############################################################################################################ ############################################################################################################65 65
154 &737, le serveur /etios sous "inux 154 &737, le serveur /etios sous "inux###################################################################################### ######################################################################################6U 6U
15#a 9 8rsentation##########################################################################################################################6U
15#b 9 .n peu plus loin avec &amba###############################################################################################69
15#c 9 7 la mode /T######################################################################################################################51
15#d 9 &G7T##################################################################################################################################56
1U4 !xercices 1U4 !xercices###################################################################################################################################### ###################################################################################################################################### 5T 5T
1U#a 9 $onnexion, premiers contacts##############################################################################################5T
1U#b 9 .nix .tilisateur####################################################################################################################56
1U#c 9 @ile &ystem###########################################################################################################################5U
1U#d 9 $ommande @ind###################################################################################################################59
1U#e 9 "iens#####################################################################################################################################59
1U#( 9 8rocessus##############################################################################################################################U1
1U#* 9 @iles &ystem, mount, et (ormata*e#######################################################################################US
1U#h 9 &hell &cripts#########################################################################################################################U6
1U#i 9 !xercices compilation et patch du noyau##############################################################################UT
1U#= 9 &auve*ardes, pac<a*e, et dmarra*e de la machine#############################################################U6
1U#< 9 &erveurs et dmons##############################################################################################################UU
194 !xercices rcapitulati(s 194 !xercices rcapitulati(s################################################################################################################# #################################################################################################################U9 U9
Sylvain CHERRIER page 100 sur 100 Aout 2010

Vous aimerez peut-être aussi