Académique Documents
Professionnel Documents
Culture Documents
net
!"#
& '(
) *
+##,
http://adnaneadnane.ifrance.com/
super.adnane@hotmail.fr
5
5
5
6
6
8
8
9
10
10
10
10
10
11
11
11
17
17
19
19
20
20
20
21
21
21
22
22
24
25
26
27
28
28
28
29
30
30
30
30
31
31
31
31
32
33
33
33
33
2
33
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
37
38
38
38
38
38
38
39
40
40
40
40
41
41
42
43
43
43
45
45
46
46
47
47
48
49
49
50
50
50
51
53
53
55
UNIX est un systme dexploitation moderne, complet et efficace, disponible sur la plupart
des ordinateurs vendus, du PC au super calculateur Cray. Cest pourtant un systme ancien,
puisque son histoire remonte la fin des annes 60. Son architecture ouverte et sa grande
diffusion dans les centres de recherches et les universits lui ont permis dvoluer en intgrant
de nombreuses amliorations.
Aujourdhui, UNIX est trs utilis en informatique scientifique, et pour les serveurs rseaux :
la grande majorit des serveurs sur Internet fonctionnent sous UNIX. Par contre, sa relative
complexit dutilisation lcarte des applications grand public.
Le but de ce module est de donner un aperu gnral du fonctionnement du systme UNIX et
de se familiariser avec ses commandes de bases : manipulation sous shell des fichiers, des
processus et des disques.
1. Prsentation
Unix est un systme d'exploitation, c'est dire un ensemble de programmes excuts par le
processeur central d'une machine informatique pour :
partager quitablement la machine entre diffrentes tches (Unix est multitche), ou
entre diffrents utilisateurs (Unix est multi-utilisateurs),
contrler la fiabilit du systme,
grer les entres/sorties (disques, terminaux, lecteur de disquette, etc.),
grer les aspects rseau : transfert de fichiers, connexion distance, messagerie
lectronique, etc.
2. Historique
L'histoire d'UNIX dbute dans les annes 60 et peut tre rsume de la faon suivante :
- 1966 : les laboratoires Bell (filiale d'AT&T) ont besoin pour leur usage interne, d'un systme
d'exploitation pour le traitement de textes et le dveloppement d'applications. Ken Thomson
et son quipe sont chargs de ce travail.
- 1969 : apparition de la 1re version d'UNIX. Le nom UNIX provient de UNICS (UNiplexed
Information and Computing System), systme d'exploitation qui a succd Multics dans les
laboratoires Bell.
- 1973 : ncessit de rendre UNIX portable sur d'autres ordinateurs. Denis Ritchie rcrit alors
entirement UNIX en langage C qui a d'ailleurs t cr dans ce but prcis. Ceci explique les
liens profonds entre le langage C et UNIX.
- 1974 : AT&T propose les 1res licences aux universits ce qui apporta un enrichissement en
extensions et en utilitaires varis UNIX (en particulier, l'Universit de Berkeley). Cette date
correspond au dbut de la popularit et de la diversit d'UNIX.
- 1978 : AT&T prsente l'industrie les 1res versions commerciales.
-annes 80 : AT&T autorise le clonage d'UNIX par d'autres constructeurs. De nombreuses
autres versions ont vu le jour on cite :
AIX IBM, Bull (stations de travail, mainframes) ;
HP/UX Hewlett-Packard (stations);
Solaris Sun MicroSystems (stations Sun et PC) ;
GNU/Linux Logiciel libre (et gratuit).
Ces versions constructeur drivent toutes des 2 versions prsentes l'poque et qui sont :
- System V pour des configurations moyennes et petites ;
- BSD (Berkeley Software Distribution) pour des configurations importantes dans le domaine
scientifique).
noter qu'il existe quelques diffrences de syntaxe entre certaines commandes UNIX de type
System V et celles de type BSD.
Concernant le systme Linux, il a vu le jour en 1991 par un tudiant finlandais, Linus
Torvalds. Linux est une version libre dUNIX (le code source du systme est disponible
gratuitement et redistribuable) qui connat actuellement un grand succs, tant chez les
utilisateurs particulier (en tant qualternative Windows) que sur pour les serveurs
Internet/Intranet. Linux est diffus par diffrentes socits ou organisations, sous formes de
distributions qui utilisent le mme noyau (ou presque) et organisent de diverses faons le
systme (packages, mises jour, etc). Les distributions les plus rpandues sont Red Hat, Suse,
Caldera, Debian, Slackware et Mandrake ( lorigine issue de Red Hat) et sadressent chacune
diffrents types dutilisateurs.
La couche des processus utilisateurs : Tout logiciel est la base un programme constitu
d'un ensemble de lignes de commandes crites dans un langage particulier appel langage de
programmation. C'est uniquement quand on excute le logiciel que le programme va raliser
la tche pour laquelle il a t crit, dans ce cas l on dira qu'on a affaire un processus ou
process. En d'autres termes le programme est rsolument statique, c'est des lignes de code,
alors que le processus est dynamique, c'est le programme qui s'excute.
Une seule copie dun programme en mmoire peut tre utilise par plusieurs processus;
lorsque des utilisateurs crent des processus qui font appel aux mmes programmes, la
distinction entre processus est faite par leur image, qui par dfinition est lensemble des
lments ncessaires lexcution dun processus un instant donn (tat de la mmoire, des
registres, des fichiers, dun processus).
Un processus peut se dupliquer ; le processus cr est alors appel fils, et son image diffre
du pre uniquement par son numro didentification (PID).
Les processus dits systme sont enclenchs par le noyau.
Chaque processus utilisateur dialogue avec lextrieur par le biais de trois fichiers particuliers
qui sont ouverts en permanence :
lentre standard (standard input) ;
la sortie standard (standard output) ;
la sortie derreur standard (standard error output) ;
Par dfaut, ces fichiers sont lis au terminal, et reprsentent le clavier (input) et lcran
(output).
Le noyau (en anglais kernel) : Le noyau est la partie centrale dUnix. Il est rsident, il se
charge en mmoire au dmarrage. Il gre les tches de base du systme, savoir:
l'initialisation, les processus systme et les processus utilisateurs, le processeur et la RAM, les
fichiers systmes.
Le partage du temps processeur entre les processus actifs (prt lexcution) est gr par le
processus systme appel 'scheduler' et il est bas sur l'horloge de l'ordinateur.
des intervalles rguliers (de l'ordre d'un centime de seconde), le processeur abandonne
l'excution du processus courant et passe l'excution du premier processus de plus haute
priorit en attente.
Pour accomplir les tches qui lui sont propres, le noyau accde un groupe de tables, dites
systme, qui concernent les processus actifs, les fichiers ouverts, etc.
chaque intervalle, un examen de la table des processus permet au noyau de dterminer
lequel doit tre excut; les donnes propres chaque processus actifs (environnement de
variables, tat des registres, ...) sont prsentes dans une zone mmoire rserve du noyau.
Avant l'excution du processus slectionn, le noyau passe la main au 'swapper', le processus
systme qui gre les ressources mmoire et procde si ncessaire des changes entre la
RAM et le disque dur. Ensuite, le processus est enclench (tat Actif).
La couche de gestion des priphriques : C'est pour assurer l'indpendance vis vis du
matriel que la gestion des priphrique est faite par une couche logicielle. Vu du noyau, un
priphrique est considr comme un fichier. En fonction des caractristiques de ce fichier, le
noyau va dterminer l'adresse mmoire des sous-programmes excuter pour raliser la
liaison avec le priphrique en question. Cette couche dpend troitement du matriel.
1. Le shell
Sous le nom shell (en franais coquille), on dsigne l'interface utilisateur qui, dans
l'architecture d'UNIX, entoure le noyau.
Plus simplement, le shell est un programme qui permet l'utilisateur de dialoguer avec le
coeur du systme (le noyau).
Il permet de raliser plusieurs tches :
Il interprte les ordres taps au clavier par l'utilisateur et permet ainsi l'excution des
programmes;
Il fournit l'utilisateur un langage de programmation interprt;
Il permet de modifier l'environnement;
Il se charge de raliser les redirections des entres-sorties, les pipes et la substitution de type
fichier (dtaills plus loin dans ce cours).
Il en existe de nombreuses versions. Le plus connus d'entre eux, bash est celui que nous
utiliserons pendant ce cours.
Chacun des shells existant dispose de ses propres avantages et points faibles. L'intrt d'avoir
un shell plutt qu'un autre dpend des fonctionnalits offertes par celui-ci, et donc de
l'utilisation que l'on souhaite en avoir.
Le tableau suivant vous prsente les principaux shells ainsi que leurs caractristiques.
Nom
Description
bash
csh
ksh
sh
tcsh
zsh
shell similaire au Korn shell, avec plus de dynamisme lors des affichages et gre la
non redondance des commandes.
Un systme Unix / Linux fonctionne l'aide d'une multitude de programmes qui assurent, en
gnral, chacun une fonction bien distincte et sont capables de communiquer au sein du shell.
Afin de pouvoir accder au terminal, vous devez au pralable vous identifier grce un
couple login/mot de passe. En fonction de cela, vous aurez accs plus ou moins de
programmes sur le systme.
On distingue principalement 2 types de comptes utilisables sur le systme :
Le compte utilisateur classique
Le compte root (Administrateur)
Un symbole de l'invite de commande vous permet de dterminer le type de compte que vous
utilisez.
Accs simple utilisateur :
user@localhost $
Accs root :
root@localhost #
2. Variables denvironnement
Les variables sont des valeurs associes des noms explicites; elles constituent
l'environnement d'excution des commandes.
On retrouve dans l'environnement standard du shell un certain nombre de variables dont il se
sert l'excution.
Voici les principales variables denvironnement utilises par le shell :
CDPATH: liste des rpertoires recherchs quand cd est excut avec un nom relatif comme
argument,
DISPLAY: lcran sur lequel on travaille (par dfaut :0.0),
ENV: nom dun fichier excut chaque appel de ksh,
GID: le numro du groupe actuel de lutilisateur,
HOME: rpertoire de login,
HOST: le nom de la machine sur laquelle on se trouve,
IFS: sparateur de mots dans les commandes (espace, tabulation ou passage la ligne);
IFS est utilis pour les commandes internes pour dcouper une liste de paramtres,
LOGNAME: le nom de lutilisateur,
MANPATH: liste des rpertoires o se trouvent les pages de manuel,
PATH: liste des rpertoire de recherche des commandes, le sparateur est :,
PS1, PS2: prompts initial et secondaire (habituellement $ et >),
PWD: le rpertoire courant,
SHELL: le shell par dfaut,
TERM: nom du type de terminal utilis,
UID: le numro de lutilisateur.
Pour rcuprer le contenu d'une variable, l'utilisateur utilise le caractre $ suivi du nom de sa
variable.
Exemple :
$ echo $LOGNAME
root
Description
Avance dans le manuel d'une page entire
Avance dans le manuel d'une ligne
Recule dans le manuel d'une page
Recherche mot dans le manuel. Ce peut tre un nom ou une expression rgulire
Quitte le manuel
10
2. Commandes de base
2.1 Fonctionnement de lexcution dune commande
Lorsquil a la main, un utilisateur peut lancer lexcution dune commande en tapant son nom
aprs le prompt. La commande est alors excute. Comment fonctionne cette excution? Il
existe une variable denvironnement: PATH qui contient lensemble des chemins les plus
utiliss.
Exemple :
luser@localhost $ echo $PATH
/bin:/usr/ucb:/usr/bin:/usr/bin/X11:/net/bin:/net/X/bin:/net/pack/frame/bin:
/usr/openwin/bin:/u/students/tri/user/bin
Comme sous DOS, cette variable contient tous les chemins o le systme peut trouver les
commandes les plus utilises par le demandeur. Le parcours se fait de gauche droite. Il faut
donc faire attention, au cas o un excutable est prsent sur le systme sous plusieurs versions
diffrentes bien positionner la hirarchie des rpertoires en fonction de vos besoins.
Donc, seules les commandes qui peuvent tre trouves via la variable PATH sont excutes
directement. Pour toutes les autres, il est ncessaire dindiquer au shell le chemin absolu (ou
relatif) pour atteindre cette commande.
2.2 Commandes lies larborescence de fichiers
Nom dun fichier (nom absolu / nom relatif)
Les noms de fichiers sont "case sensitives", cest dire quils tiennent compte des majuscules
et des minuscules. Le nom dun fichier peut contenir jusqu 255 caractres.
Pour accder un fichier comportant des caractres spciaux dans son nom, on doit placer le
nom du fichier entre guillemets (ou utiliser des backslash avant les caractres spciaux) :
luser@localhost $ vi "ceci est un test.txt"
luser@localhost $ vi ceci\ est\ un\ test.txt
Deux notions sont lies au nom du fichier: son chemin absolu et son chemin relatif.
Le chemin absolu est compos du nom du fichier prcd par le chemin daccs ce fichier
depuis la racine de larborescence (exemple: /u/students/tri/user/.profile);
Le chemin relatif, quand lui est une troncature de cette arborescence par rapport au
rpertoire courant (exemples: ~/.profile, ../other_user/.profile, ./.oracle). En ce qui concerne
les chemins relatifs, un certain nombre de raccourcis sont utiliss:
. dsigne le rpertoire courant,
.. dsigne le rpertoire parent du rpertoire courant,
~/ est la contraction de votre HOME directory.
Visualisation de larborescence
La commande ls permet dobtenir la liste des fichiers dun rpertoire ou dune arborescence
de rpertoires. Un certain nombre doptions permettent dafficher plus ou moins
dinformations sur ces fichiers et rpertoires :
-l: format dtaill (cf. exemple),
-a: liste aussi les fichiers qui commencent par . (et qui normalement napparaissent pas
dans la liste normale),
-d: si largument est un rpertoire, la commande liste seulement son nom et pas les fichiers
quil contient,
-t: affiche en triant par date de dernire modification
11
tools
.profile
.rhosts
.shrc
tools
profile
toto
test.c
La premire information concerne le type du fichier. Cet indicateur peut prendre les valeurs
suivantes:
- pour un fichier ordinaire,
d pour un rpertoire,
b pour un fichier spcial de type bloc (priphriques...),
c pour un fichier spcial de type caractre (disque, streamer...),
l pour un lien symbolique,
s pour une socket.
La seconde concerne les droits (utilisateur-propritaire, groupe de travail, autres utilisateurs),
vient ensuite le nombre de liens sur le fichier (ou le rpertoire), puis le propritaire effectif, la
taille, la date de dernire modification et le nom du fichier.
Rappel sur les droits :
Type de fichier
Fichier ordinaire
Autorisation
Lecture
r lire le contenu du fichier
Ecriture
w modifier le contenu du fichier
Excution
x excuter le fichier
Rpertoire
lister les sous-fichiers
ajouter, enlever des sous fichiers
travailler dans le rpertoire
12
14
15
16
18
Si il y a un problme?
Si un problme subsiste, cest dire si une requte bloque la sortie des autres, supprimer cette
requte de la file dattente. A laide de la commande lpc, redmarrez le daemon dimpression
de limprimante, et laissez sortir les travaux en attente. Reprenez la requte bloquante
ultrieurement.
Exemple :
luser@localhost $ lpc
lpc> status
permet de voir le statut des imprimantes connectes
homere:
queuing is enabled
printing is enabled
no entries
no daemon present
lpc> restart homere
permet de relancer le daemon dimpression (lpd)
homere:
no daemon to abort
homere:
daemon started
lpc> quit
on sort de linterface lpc.
3. Le globbing
Le globbing est lutilisation de caractres spciaux tels que "*", "?".
*: correspond aucun ou plusieurs caractres
? : correspond un caractre
[a-z] : correspond un ensemble de caractres
[^a-z] : correspond tous les caractres sauf ceux de cet ensemble
Voici la liste des fichiers utiliss pour l'exemple :
luser@localhost $ ls
index.htm sommaire.htm t0st.c table.htm test.c
On affiche tous les fichiers finissant par ".htm"
luser@localhost $ ls *.htm
index.htm sommaire.htm table.htm
On affiche tous les fichiers sauf les fichiers finissant par la chane "htm".
luser@localhost $ ls *[^htm]
t0st.c test.c
Exemple avec "?" qui signifie un caractre non vide :
luser@localhost $ ls t?st.c
t0st.c test.c
On affiche tous les fichiers comportant "st" dans le nom :
luser@localhost $ ls *st*
t0st.c test.c
4. L'diteur VIm
Nous avons choisis de vous prsenter cet diteur de texte car c'est le plus utilis sur la plupart
des systmes UNIX. VIm est une version amliore de l'diteur VI, possdant plus de
commandes et d'options. VI est toujours le plus distribu sur les systmes Unix, mais une
matrise de VIm vous permettra de vous dbrouiller avec l'diteur VI.
19
Description
Sauvegarde les changements
Quitte le document en cours
Quitte le document en cours sans sauvegarder les changements
Enregistre et quitte l'editeur
Enregistre sous un autre nom le document (quivalent de enregistrer sous)
Recherche l'occurence hop et la met en surbrillance, "n" se positionne sur la
prochaine occurence
Permet de passer en mode visualisation pour faire une slection par exemple
Equivalent de couper, aprs une slection par exemple
Coupe la ligne entire
Equivalent de copier, aprs une slection par exemple
Copie la ligne entire
Coller aprs le curseur
Description
Ajoute aprs le curseur
Ajoute aprs la ligne courante
Insre avant le curseur
Insre au debut de la ligne courante avant le premier caractre non-blanc
Ouvre une nouvelle ligne en-dessous de la ligne actuelle
Ouvre une nouvelle ligne au-dessus de la ligne actuelle
20
21
options :
-1 -9 : Fixe le niveau de compression -1 etant le plus faible
-d :
Dcompresse l'archive passe en argument
-c :
Ecrit sur la sortie standard au lieu de remplacer le fichier dorigine
-l :
Affiche des infos sur les fichiers de l'archive (taux de compression...)
-r :
gzip parcoure tous les rpertoires de manire rcursive lors de la d/compression
Exemples :
1 - Compresse backup.tar et le remplace par le fichier backup.tar.gz dune taille beaucoup
plus rduite :
luser@localhost$ gzip backup.tar /home/toto
2 - Compresse au maximum chaque fichier .txt sparment, et les renomme en ajoutant le
suffixe .gz :
luser@localhost $ gzip -9 *.txt
5.3 bzip2
bzip2 admet la mme syntaxe que gzip, mais effectue une compression plus efficace au
dtriment d'un besoin accru de mmoire et cpu.
6. Manipulation des donnes dun fichier
Trier les lignes dun fichier
La commande:
sort [options] [fichiers...]
trie les lignes des fichiers, la sortie se faisant sur la sortie standard.
Le tri seffectue sur une ou plusieurs cls extraites de chaque ligne. Voici les principales
options qui vont permettre de raliser ce tri:
+pos1 -pos2: permet dindiquer le dbut et la fin dun cl de tri; celle-ci peut tre compose
de plusieurs zones de tri concatnes. Le tri commence au champ pos1+1 et se termine au
champ pos2+1. Sil ny a pas de pos2, la zone de tri va jusqu la fin de la ligne,
-t sparateur: indique le caractre qui spare les diffrents champs. Si un sparateur nest
pas dfini, les champs sont spars par toute suite despace ou de tabulations contigus,
-b: ignore les espaces et les tabulations de tte dans chaque champ,
-n: effectue un tri numrique sur les champs,
-f: ignore la diffrence entre majuscules et minuscules,
-c: affiche un message si les lignes ne sont pas dans le bon ordre,
-o fichier: sort le rsultat du tri dans fichier (attention sort fich > fich dtruit fich avant de le
trier, prfrer cette option toute redirection!),
-r: inverse lordre de tri,
-u: ne garde quune ligne par cl...
Exemples :
luser@localhost $ sort -t: +2 -3 /etc/passwd
tri le fichier /etc/passwd par numro dutilisateur
luser@localhost $ ls -l / | sort -b +2 -3 +7
tri de la liste des fichiers sous la racine par propritaire (+2 -3) et par nom de fichier
Recherche dune chane de caractres
La commande:
grep [option] expression-rgulire [fichiers...]
affiche lcran les lignes des fichiers qui contiennent une chane de caractres correspondant
lexpression rgulire donne. Cette commande est souvent utilise aprs un pipe.
22
23
24
7.2 Redirections
Ainsi, si nous excutons un programme comme ls, il va afficher le rsultat sur la sortie
standard, c'est dire l'cran par dfaut. Il est possible de rediriger ces diffrents flux vers des
fichiers, dautres flux
Ceci se fait par le biais des signes "<" et ">" Une commande "commande > un fichier" va
crer un fichier "un fichier" contenant le rsultat de la commande "commande".
De mme, avec le signe "<" au lieu de ">" aurait utilis le contenu du fichier "un fichier" en
entre de la commande "commande".
Exemples :
$ cd /tmp
$ ls -l /bin
total 4872
-rwxr-xr-x 1 root root 3180 Jan 22 2001 arch
-rwxr-xr-x 1 root root 54905 May 22 2001 attr
-rwxr-xr-x 1 root bin 477692 Mar 22 2000 bash
25
26
27
FHS (Filesystem Hierachy System) est une convention qui organise l'arborescence des
rpertoires sous Linux. Cette convention est aussi valable pour Unix. Cette convention est
primordiale, grce au FHS lorsque vous installez un programme sous linux, peu importe votre
distribution, les fichiers iront toujours dans les mmes rpertoires.
1. Hirarchie root
Sous Linux, toute l'arborescence part de "/" appel root. Ici se trouvent tous les dossiers
lmentaires dont voici la description.
Rpertoire
/bin
/boot
/dev
/etc
/home
/lib
/mnt
/proc
/root
/sbin
/tmp
/usr
/var
Description
Contient les binaires (excutables) vitaux pour l'utilisateur
Contient les fichiers relatifs au bootloader
Contient tout les priphriques
Contient les fichiers de configuration et des fichiers ncessaires au dmarrage
(rc scripts)
Contient les rpertoires utilisateurs
Contient les librairies partages et les modules du noyau (/lib/modules)
Contient les dossiers pour les points de montage temporaires
Contient les informations sur le noyau
Rpertoire personnel de root
Contient les binaires vitaux pour l'administrateur (root)
Contient les dossiers et fichiers temporaires. Le dossier est vid chaque
dmarrage
Contient tout ce qui n'est pas vital au systme (voir ci-dessous)
Contient des fichiers qui changent frquemment, tel que : les logs, les mail,
queues d'impression... (voir ci-dessous)
2. Hirarchie usr
Le rpertoire "/usr" contient certains dossiers dj prsents dans "/" (bin, sbin, lib, tmp)
Mais ceux-ci ne sont pas ncessaires au fonctionnement minimal du systme. On va donc y
trouver les fichiers relatifs aux programmes tierce partie, par exemple le navigateur web ou
les lecteurs multimdias.
Rpertoire
/usr/bin
/usr/doc
/usr/lib
/usr/man
/usr/sbin
/usr/src
/usr/X11R6
Description
Contient les binaires pour l'utilisateur
Contient la documentation des programmes installs (hors manpages)
Contient les librairies partages
Contient les manpages (pages de manuel)
Contient les binaires pour l'administrateur
Contient les sources du noyau
Contient les fichiers du serveur X
28
3. Hirarchie var
Un fichier variable est un fichier dont le contenu va changer frquemment et sans
l'intervention directe de l'homme (ex : fichier de log). Ils sont opposs aux fichiers statiques,
fichiers dont le contenu ne varie pas (ex : fichier de configuration)
Le dossier "/var" contient tous les fichiers variables.
/var/log
/var/mail
/var/run
/var/spool
29
30
31
-k [ rpertoire ]
vers
un
32
33
Explication
Sans option, su permet de se connecter en tant qu'administrateur
Agir en tant qu'utilisateur ahmed
Se connecter en tant que ahmed. Avec "-" on rcupre tout
l'environnement de l'utilisateur ahmed
l'option -c permet simplement d'excuter la commande entre
guillemet en tant que root (pas d'option). Une fois la commande
termine, on reprend son identit
34
35
Exemple :
Nous allons donner les droits de lecture, criture et excution l'utilisateur. Les droits de
lecture et excution au groupe et aux autres.
4+2+1 = 7
4+1 = 5
root@localhost # ls -l fichier
-rw-r--r-- 1 root wheel 0 7 Sep 10:52 fichier
root@localhost # chmod 755 fichier
-rwxr-xr-x 1 root wheel 0 7 Sep 10:52 fichier
3. Umask
Par dfaut, tous les fichiers crs ont comme droit 666 et les dossiers 777. L'umask est un
masque qui va rduire ces droits. Lors de la cration d'un fichier, le systme va soustraire
l'umask aux droits par dfaut. Par l'umask est 0022.
On a donc 666 - 022 = 644.
Vrifions en crant un fichier.
root@localhost # touch document
root@localhost # ls -l document
-rw-r--r-- 1 root wheel 0 7 Sep 11:02 document
On peut dfinir le umask grce la commande umask.
root@localhost # umask 077
4. Les droits spciaux
Il existe trois droits spciaux : suid, sgid et sticky bit. Ils sont ajouts grce la commande
chmod.
droit lettre chiffre
suid s
4
sgid s
2
1
sticky t
4.1 SUID
Lorsque vous excutez une commande, celle-ci se lance avec votre uid. Cette commande aura
donc accs seulement aux fichiers o vous possdez des droits.
Si le suid est plac sur un excutable, ce dernier se lancera avec l'uid de son propritaire.
4.2 SGID
Le droit sgid fonctionne de la mme faon que le suid en ce qui concerne les excutables.
Mais le sgid peut aussi tre attribu un dossier. Tout fichier cr dans un dossier portant le
sgid aura comme groupe propritaire le groupe du dossier.
4.3 Sticky
Si vous possdez le droit d'criture sur un dossier, vous pouvez renommer ou supprimer tous
les fichiers qu'il contient. Ce fonctionnement n'est pas adquat pour un dossier public, o tout
le monde accs en criture comme "/tmp". Si le sticky bit est plac sur un dossier, seul le
possesseur d'un fichier pourra le renommer ou le supprimer.
37
1. Boot-loader
1.1 Qu'est ce que le boot-loader?
Le boot loader est un programme lanc juste aprs le chargement du Bios. Il permettra
lutilisateur de choisir quel systme dexploitation il veut lancer. Dans le cas de linux, le boot
loader permet aussi de choisir quel noyau lutilisateur veut charger.
Il existe deux principaux bootloaders sous Linux qui sont Grub et Lilo. Il en existe dautre,
mais nous ne les verrons pas dans ce cours.
Le bootloader peut faciliter la rparation d'un systme Linux dans certains cas (perte du mot
de passe root, maintenance sur les systmes de fichiers).
1.2 Dmarrage
Que se passe til entre le moment o l'on allume sa machine jusqu'au moment o l'on entre
son login et mot de passe :
1. le BIOS effectue une srie de tests sur le matriel (RAM, dtection des disques, ...)
nomm POST : Power On Self Test. C'est pendant cette tape que l'utilisateur peut
appuyer sur une touche pour entrer dans le BIOS.
2. le bootloader est charg en mmoire, l'utilisateur peut alors choisir le systme
dmarrer
3. le noyau linux est charg en mmoire par le bootloader, il s'initialise, dtecte les
priphriques, ...
4. le noyau passe alors la main au programme sysvinit, souvent dnomm init, pre de
tous les processus. En effet c'est ce programme ayant comme PID 1, qui va lancer tous
les services au dmarrage.
5. init lance en dernier un terminal virtuel qui demande un login/password pour ouvrir un
shell
Bootloader utilis suivant les os
Windows
NTLDR
Linux
Lilo
Grub
38
boot = /dev/hda
default = Linux
timeout = 100
prompt
# Affiche la liste des images
message=/boot/message
# Fichier contenant le texte qui sera affich
password = secret
restricted
39
initrd /initrd.img
# Image ramdisk
40
5. Partitions
Un disque ne peut contenir que 4 partitions primaires. Mais il est possible de remplacer une
partition primaire par une partition tendue. Cette partition tendue peut contenir maximum
12 partitions logiques. Notre disque pourra donc, au maximum, contenir 15 partitions
utilisables soit 3 primaires plus les 12 partitions logiques.
Cette mthode est la plus utilise, indpendamment du systme d'exploitation. Il existe une
autre mthode appel LVM (Logic Volume Manager) mais elle ne sera pas aborde dans ce
cours.
Sous Linux, contrairement Windows, chaque partition n'est pas reprsente sous forme de
lecteur. Nous allons pouvoir monter, c'est dire ajouter cet espace disponible notre systme
de dossier hirarchique.
Par exemple si notre machine fait office de serveur FTP, nous pourrons crer une partition
ddie qui sera monte dans "/var/ftp/". Ainsi le serveur FTP n'utilisera pas la place rserve
aux utilisateurs ou aux fichiers de logs.
Il faudra aussi prvoir une partition rserve au swap.
5.1 Partitionner un disque dur
Il existe plusieurs outils pour partitionner un disque dur sous linux. Les plus communs sont :
fdisk : utilitaire en mode texte avec menu interactif
cfdisk : utilitaire en mode curses (pseudo graphique) avec une liste des partitions.
Ces deux utilitaires se lancent de la mme faon :
commande /dev/disk
Il est possible de modifier les partitions d'un disque dur en cours d'utilisation. Mais vous
devrez redmarrer pour que les changements soient prises en compte.
Voici un exemple avec fdisk
Nous allons crer 1 partition primaire contenant la swap (512Mo) et une partition logique
contenant "/" (5Go)
root@localhost # fdisk /dev/hda
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2434, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2434, default 2434): +512M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
41
Start
1
64
64
End
Blocks Id System
63
506016 82 Linux swap
2434 19045057+ 5 Extended
672 4891761 83 Linux
m Aide
p Affiche l'tat du disque
n Cre une nouvelle partition
d Supprime une partition
t Change le type de partition (82 : Linux Swap, 83 : Linux Native)
w Sauver et quitter
q Quitter sans sauver
5.2 Formater une partition
Une fois nos partitions cres, il faut les formater afin de pouvoir crer un systme de fichier
dessus.
Le systme de fichier indique, entre autres, comment organiser les donnes sur le disque dur.
Dans la majorit des cas, nous utiliserons la commande mkfs. Certains systmes de fichiers
utilisent leur propre commande, nous les verrons ci-dessous.
Il existe deux moyens d'utiliser la commande mkfs :
mkfs -t type /dev/partition
mkfs.type /dev/partition
42
Voici un tableau des systmes de fichiers utilisables sous linux avec la commande utiliser.
swap
ext2
ext3
reiserfs
xfs
jfs
vfat
mkswap
mke2fs, mkfs -t ext2, mkfs.ext2
mke2fs -j, mkfs -t ext3, mkfs.ext3
mkreiserfs
mkfs -t xfs, mkfs.xfs
mkfs -t jfs, mkfs.jfs
mkfs -t vfat, mkfs.vfat
43
44
45
LIB
Nombre de pages occupes par les bibliothques (sauf pour les excutables au
format ELF ; autant dire que a ne fonctionne quasiment jamais)
Taux d'occupation du(des) processeur(s) par ce processus. Il peut tre suprieur
%CPU
100% dans le cadre de machine ayant plusieurs processeurs
Taux d'occupation de la mmoire physique du processus
%MEM
Temps total d'excution au sein du(des) processeur(s) depuis le lancement du
TIME
processus
COMMAND Affiche la ligne de commande qui a permis de lancer le processus
2. Envoi de signaux aux processus
Ce procd se concentre essentiellement autour de la commande kill. Il n'est pas, comme son
nom pourrait le laisser supposer, ddi tuer des processus. Il va permettre de faire effectuer
un certain nombre de tches l'un ou plusieurs d'entres eux.
Tout dpend, finalement, de comment ragissent les programmes aux signaux qui leurs sont
envoys.
Pour obtenir la liste des signaux disponibles, il suffit de taper dans l'invite de commande du
shell : kill -l
Voici dans un tableau les principaux signaux utiliss :
Nom du
SIGNAL
Nombre Description
SIGHUP
SIGKINT
SIGKILL
SIGTERM
SIGTSTP
15
18
46
* : lorsque vous utilisez ces commandes et que vous avez mis un processus en attente, il met
le processus dans l'tat prt et dans le mode pour lequel il a t cre.
Toutes les commandes que nous avons vues jusqu' maintenant sont places dans un mode
d'arrire ou d'avant plan mais le processus est attach un terminal. Il existe un mode appl
mode de "dtachement" o un processus n'est attach aucun terminal ou pseudo terminal.
Gnralement c'est le cas des daemon. On identifie facilement un daemon par le champ TTY
d'une sortie des commandes ps ou top ou il y a le symbole "?"
La commande permettant le dtachement des processus est : disown et possde un paramtre
qui est le PID du processus.
Exemple :
disown 1394
4. Modification des priorits du Scheduler
Nous avons vu en introduction que les processus avaient des priorits et qu'elles taient
modifiables. En effet les proprits voluent sur une chelle de -20 +19. Tout processus, au
lancement, peut avoir une priorit quelconque suprieure ou gale zro. Par contre un
processus lanc par un utilisateur, son excution et durant celle-ci ne peut avoir une priorit
ngative. Seul l'administrateur systme possde ce droit. Par dfaut un processus est lanc
avec la priorit 10.
Les commandes permettant de contrler les priorits des processus sont nice et renice.
Commande Description
Options
Permet d'affecter une priorit aux -n N : permet d'ajuster la priorit
nice priorit
processus ds leur lancement
par dfaut N
Permet de modifier la priorit d'un -u "User" : change la priorit de
renice
processus alors que celui-ci est dj lanc tous les processus d'un utilisateur
priorit
-p "PID" : change la priorit d'un processus ayant un pid prcis
5. Planification de tches
Il est possible de planifier des tches sur linux afin que celles-ci s'excutent de manires
rptitives ou diffres. Pour cela deux daemons existent l'un crond qui est le daemon
permettant d'effectuer des tches rptitives et le daemon atd destin aux tches diffres.
Chacun de ces deux daemons possdent une commande en premier plan : crontab pour crond
et at pour atd. Cependant beaucoup de ces commandes ne peuvent pas tre utiliss par
n'importe qui.
Pour grer les accs ces commandes, l'administrateur dispose de fichiers de permissions
situs dans le rpertoire /etc : cron.allow et at.allow qui definissent les autorisations et
cron.deny et at.deny les refus.
Selon la prsence ou l'absence de ces fichiers plusieurs rgles rentrent en jeu :
Aucun des fichiers n'existe : dans ce cas seul root le droit d'utiliser les commandes
Remarque : dans le cas d'un systme RedHat l'absence des fichiers donne le droit
l'ensemble des utilisateurs d'utiliser les commandes
Les fichiers cron.allow et at.allow existent : les utilisateurs dont les noms sont prsents
sont habilits excuter les commandes
Les fichiers cron.deny et at.deny existent : les utilisateurs dont les noms sont prsents
ne peuvent excuter les commandes les autres oui.
47
Dfinition
Installation du fichier crontab pour utilisateur (ncessaire d'tre root pour
l'utiliser)
Modification du fichier crontab l'aide de l'diteur spcifi par les variables
VISUAL ou EDITOR
Liste le contenu du fichier crontab courant
Elimination du fichier crontab courant
Le fichier crontab cr par l'utilisateur est compos de cinq champs marquant la priodicitt
et la commande effectuer. Ces champs sont ainsi dfinis:
Minute heure date mois "jour du mois" commande
La priodicit de chacun de ces 5 champs est reprsente par des valeurs numriques comme
ci dessous:
minutes (0-59)
heures (0-23)
date (0-31)
mois (1-12)
jour de la semaine (0-7)ou (0 ou 7 indique le Dimanche)
Vous pouvez affiner la notion de priodicit par l'utilisation de:
, : spare plusieurs valeurs
- : marque une priode (exemple: 1-7,du lundi au dimanche)
* : reprsente l'ensemble des valeurs possibles
/ : permet de spcifier tous les x temps (exemple: */2 dans la colone des jours veut dire
chaque 2 jours).
Remarque : vous pouvez sparer les champs d'une entre par des espaces simples, ou de
tabulations.
5.2 Le fichier crontab systme
Le fichier /etc/crontab est galement lu par le daemon crond et est diffrent du format d'un
fichier crontab ordinaire, en effet celui-ci possde des informations d'environnement qui
prcdent gnralement ses entres (cela est aussi permis pour les fichiers crontab ordinaires
mais ce n'est pas souvent utilis). Aprs les cinq champs initiaux se trouve le nom d'un
utilisateur pour lequel la commande doit tre appele.
Ce fichier est gnralement utilis pour appeler les scripts contenus dans les rpertoires
"cron.periode" se situant dans le rpertoire /etc, numrs ci-dessous :
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.* rpertoire contenant les excutables
48
L'autre diffrence du fichier systme crontab est qu'il fait appel une commande particulire :
run-parts. Cette commande prend en argument un nom de rpertoire et appelle tous les
programmes compris dans ce rpertoire (le programme run-parts se trouve dans /usr/bin et
n'est accompagn d'aucune documentation en ligne).
Voici un exemple de fichier /etc/crontab:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/bin:/usr/sbin
MAILTO=root
HOME=/
# run-parts
01
*
*
*
*
root run-parts /etc/cron.hourly
02
4
*
*
*
root run-parts /etc/cron.daily
22
4
*
*
*
root run-parts /etc/cron.weekly
42
4
1
*
*
root run-parts /etc/cron.monthly
Ainsi, chaque matin, 4:02, tous les scripts (ou programmes du rpertoire /etc/cron.daily sont
excuts. Le rpertoire cron.daily est cr lors de l'installation de votre distribution et contient
des scripts servant mettre jour les bases de donnes slocate et whatis, nettoyer les
rpertoires temporaires et excuter d'autres tches de maintenance.
5.3 La commande at
at est un outil pratique pour planifier un seul vnement futur, et son utilisation est trs
simple:
Exemple :
luser@localhost $ at 6:00 ;
mail joe < joe.msg
Beaucoup d'autres commandes utilisent le daemon atd :
la commande atq (pour at queue, la file d'attente de at), fournit une liste des travaux at
actuellement en cours. Tout utilisateur privilgi (root) peut entrer un nom d'utilisateur
comme argument pour obtenir les travaux en cours d'autres utilisateurs.
la commande atrm est utilise pour liminer les travaux at en cours. L'atJobID
s'affiche lorsque le travail est soumis ainsi qu' la demande de la commande atq. Tout
utilisateur privilgi peut liminer les travaux at d'autres utilisateurs en fournissant le
nom d'utilisateur (user ID) de ceux-ci.
Les commandes peuvent tre indiques (une par ligne), en terminant l'entre par Ctrl-d seul,
sur sa propre ligne.
49
1. Les diffrents types d'archives
Basiquement il existe plusieurs faons de rcuprer une application fonctionnant sous Linux:
Sous forme de paquetage RPM. Il s'agit d'un fichier portant l'extension .rpm
permettant une installation automatique, pour les distributions Linux telles que RedHat
ou Mandrake.
Sous forme de paquetage DEB. Il s'agit d'un fichier portant l'extension .deb permettant
une installation automatique, pour les distributions Linux Debian.
Sous forme d'archive. Il s'agit de fichiers compresss comportant l'extension .tar.gz,
.gz ou .tar.bz2
Dans le second cas il s'agit gnralement des sources du logiciel. Il vous faut donc compiler le
programme sur votre machine afin de rendre son excution possible.
2. Les packages RPM
RPM (Red Hat Package Manager) est, comme son nom l'indique (en anglais), un outil de
gestion de packages (ensemble de fichiers constituant une application) pour Linux. Il permet
d'installer des applications, ainsi que les supprimer facilement.
Grce une commande simple, les fichiers s'installent directement dans les "bons"
rpertoires.
RPM a quatre utilits supplmentaires:
Mettre jour les packages: Lorsque vous rcuprez une nouvelle version d'un
package, il n'est pas ncessaire de dsinstaller la version prcdente avant d'installer la
nouvelle. En effet RPM permet une mise jour automatique des packages!
Interrogation: RPM permet effectivement de connatre le contenu d'un package, mais
il permet aussi de savoir quel package appartient un fichier.
Vrification du systme: RPM permet de vrifier l'intgrit d'un package (c'est--dire
de dterminer si tous les fichiers que contenait le package sont bien installs dans le
systme.
Accs aux sources: RPM met disposition des utilisateurs d'un package les sources,
ainsi que les instructions ncessaires la compilation au cas o des utilisateurs
voudraient modifier les fichiers du package.
Voici les commandes des 5 fonctionnalits principales:
Installation: pour installer le package "mpg123-0_59p-1_i386.rpm" il suffira de taper:
rpm -ivh mpg123-0_59p-1_i386.rpm
Si le package a dj t install prcdemment le systme vous affichera le message
package mpg123-0_59p-1 is already installed
(L'option -replacepkgs permet de forcer l'installation)
Suppression: pour supprimer un package il suffit de taper
rpm -e mpg123
(O mpg123 reprsente le nom du package dsinstaller, ce sera un autre nom pour vous...)
Mise jour: Pour mettre jour un package (ce qui part du principe qu'une version
prcdente du package a dj t installe...) il faut taper la commande:
rpm -Uvh mpg123-0_59p-1_i386.rpm
Interrogation : Il existe plusieurs commandes visant interroger un ou plusieurs
packages selon divers critres. Les voici:
50
Vrification: Cette option permet de comparer les diffrences entre la package install
et le package tel qu'il devrait tre. Les commandes sont
o Pour vrifier vis--vis d'un fichier particulier:
rpm -Vf NomDuFichier
o Pour vrifier tous les packages:
rpm -Va
o Pour vrifier un package particulier:
rpm -Vp NomDuPackage
Lorsqu'il n'y a pas d'erreur, le systme n'affiche rien. Si par contre une erreur a t
dtecte dans le package install, le systme renvoie une chane de huit caractres
indiquant le type d'erreur. Voici la signification des caractres
o D: Priphrique
o G: Groupe
o L: Lien symbolique
o M: Mode (Permissions)
o T: date du fichier
o S: Taille du fichier
o U: Utilisateur
Mise jour de la liste: Pour mettre jour la liste des packages il faut taper la
commande:
apt-get update
Mise jour des packages: La mise jour des packages eux-mmes se fait grce la
commande suivante :
apt-get -u upgrade
Il est conseill de lancer cette commande avec le commutateur -u afin de connatre la liste
exacte des paquetages qui vont tre mis jour :
apt-get upgrade
52
l'extension
.gz
.bz2
Compress: les fichiers archivs par le programme Compress portent l'extension .Z,
ils peuvent tre dcompresss par le programme Uncompress.
4. Compiler le programme
Lorsque le programme est une archive (et non un RPM) il est gnralement ncessaire de
compiler les sources.
Remarque : Bien que la compilation se fasse pratiquement toujours de la mme faon pour la
majorit des applications, il est vivement conseill de lire le fichier INSTALL ou README
pour connatre exactement les commandes ncessaires la compilation du programme.
Dans un premier temps il faut excuter la commande:
./configure
Cette commande est un script permettant d'adapter le programme la machine courante. Les
options de configure sont:
Pour obtenir de l'aide:
./configure --help
53
A. EL GHATTAS
Errachidia, Le 05/01/2008
54
55
56