Vous êtes sur la page 1sur 49

Chapitre II Lenvironnement Unix/Linux

Plan du Chapitre

Introduction aux systmes Unix/Linux Le systme de fichiers Scurit du systme de fichiers La programmation shell Les filtres et les expressions rgulires Awk et Sed Gestion des processus

1. Introduction aux systmes UNIX/Linux

Historique des systmes UNIX(1)

1969: naissance dUnix dans les laboratoires BELL 1973: portage du Noyau en C (Thompson et Ritchie) architectures: IRIX pour SGI SOLARIS pour SUN AIX pour IBM HPUX OSF pour DEC etc. portage sur plusieurs

Historique des systmes UNIX(2)


Problmes: Plusieurs versions propritaires: Solaris (Sun), AIX (IBM), HPUX (HP), etc. Portabilit des applications dune architecture une autre Besoin de standardisation Plusieurs tentatives avec les projets POSIX => spec. des systmes ouverts X/OPEN SVID (System V Interface Definition) Actuellement: 2 normalisations vocations commerciales et industrielles IX/OSF (Unix dIBM), par le groupe OSF Unix System V R. 4, groupe ARCHER dAT&T

mergence des logiciels libres


1984: Projet GNU: cration dapplications libres (open source) La GPL (General Public Licence): licence permettant de protger le caractre open source des logiciels libres La GPL assure et protge 4 liberts : Utilisation Duplication (pas de licence limite en nombre d'installation) Accs au code source Modification et redistribution du code source BSD (Berkeley): premier Unix libre Un logiciel libre n'est pas forcment gratuit ! Exemples de logiciels libres : OpenOffice : suite bureautique VLC : lecteur multimdia

Les distributions Linux


1991: Linus Torvalds cr le Kernel : le noyau des systmes Linux actuels Kernel+ applications GNU => LINUX Kernel : implmentation mise jour des API Unix (System V) pour supporter une large gamme de matriels, de pilotes et de protocoles rseaux. Actuellement plusieurs distributions existent Mme noyau Environnement utilisateur et ensembles de logiciels utilitaires variables Distributions libres mais commerciales : RHEL (RedHat Entreprise Edition), SuSE Linux Enterprise Distributions libres et gratuites : Fedora, OpenSUSE, Ubuntu, Mandriva, CentOS, Gentoo, Debian, Knoppix,etc

Architecture (1)

APPLICATIONS

applications (jeux, outils bureautiques, ) Interprteur de commandes, compilateur, noyau Langage machine Dispositifs physiques

SYSTEME DEXPLOITATION

MATERIEL

Architecture (2)
Un systme Unix est compos de: Un noyau: assure la gestion de la mmoire et des entres/sorties de bas niveau et lordonnancement des tches Un ensemble doutils de base: Diffrents interprteurs de commande appels shells; Des commandes de manipulation de fichiers; Des commandes de gestion des activits du systme (les processus); Des commandes permettant la communication entre utilisateurs ou entre systmes; Des diteurs de textes; Des outils de traitement de textes et de traitement dimages; Des compilateurs; Des lecteurs multimdias (audio, vido); Des outils de dveloppement; 9 Etc.

Caractristiques (1)
Systme ouvert Systme scuris Multitches Multi-utilisateurs Multi-sessions Tout est fichier mme le matriel Systme de fichiers hirarchis Systme hirarchis de processus Plusieurs interprteurs de commandes (SHELL)

10

Caractristiques (2)
Les utilisateurs
3 types : administrateur, non privilgis et utilisateurs systme. La plupart (admin et non privilgis)doivent tre authentifis par un login et un mot de passe Chaque utilisateur est caractris, par le systme, par un UID unique Chaque utilisateur a un rpertoire de travail par dfaut (rpertoire home) Rassembls en groupes Un unique administrateur ou super user: login= root et mot de passe choisi au moment de linstallation root peut crer des utilisateurs non privilgis

11

Caractristiques (3)
Possibilits d'ouvrir plusieurs sessions simultanes Session graphique : Bureau Un bureau est un environnement de travail complet muni de thmes personnaliss en plus d'un ensemble de logiciels ddis. KDE, GNOME Sessions textuelles : Consoles Virtuelles Excution de commandes sous le Shell Accessibles travers les raccourcis : CTRL+ALT+F(2-->6) Sessions distantes si service rseau disponible (Telnet, SSH)

12

Caractristiques (4)
Le Shell Interprteur de commandes: interface entre lutilisateur et le systme dexploitation Offre un langage de commande et est caractris par un environnement Accessible travers : Les consoles virtuelles L'application Terminal en mode graphique Plusieurs Shells ont t implments: Bourne Shell (sh), le Korn Shell (ksh), C-Shell (csh), Bourne Again Shell (Bash), Gestion dun historique Personnalisation de lenvironnement utilisateur Langage de programmation Variables denvironnement : HOME, PWD,

13

Caractristiques (5)
Format d'une ligne de commande : <prompt> commande [options] arguments <prompt> : invite de commande pouvant avoir plusieurs format tel que [nom dutilisateur @ rpertoire courant] $ Exemples Pour rcuprer l'identifiant de l'utilisateur courant : $whoami donne le login $id donne toutes les informations $who liste tous les utilisateurs connects Pour obtenir de la documentation sur une commande quelconque : $man <commande> $apropos <commande> $whatis <commande> Pour afficher un message lcran : $echo hello

14

14

Caractristiques (6)
Les processus Un processus est une instance dun programme en excution Chaque processus possde un environnement et un contexte Les processus sexcutent aussi en arborescence: un processus peut crer un autre et tre lui mme fils dun autre processus Un processus possde un identifiant (PID), un pre (PPID), un propritaire (UID) et un groupe propritaire (GID)
ps: liste et caractristiques des processus

H. IDOUDI

15

Caractristiques (7)
Les processus: les canaux standards

Sortie standard 1

Entre standard 0

P
2 Erreur standard

H. IDOUDI

16

Caractristiques (8)
Les processus: les redirections
Rediriger la sortie: Cde > fichier: cre fichier ou crase son contenu pour y crire le rsultat de cde Cde >> fichier: cre fichier ou crit sa fin le rsultat de cde. Rediriger lentre: Cde < fichier: cde prend ses arguments de fichier Rediriger lerreur Cde 2> fichier ou Cde 2>> fichier

Les processus : composition


Composition squentielle: C1;C2;C3 Composition parallle de processus indpendants C1&C2&C3 Composition de processus communicants C1|C2|C3 : les pipes Exp: who|sort
H. IDOUDI

17

Installation dun systme Linux


Systme hberg compltement en natif sur le disque Installation complte sur tout le disque Installation en dual boot : cohabitation entre Linux et un autre systme dexploitation (Windows ) Installation en tant que machine virtuelle Accder Linux partir de Windows Charger deux systmes en mme temps et profiter simultanment des deux environnements Ncessite un logiciel de virtualisation exp : VirtualBox (logiciel libre) ou VMware Aucune installation LiveCD Certaines distributions offrent des versions bootables directement partir dun CD/DVD (Ubuntu, Fedora etc) Ne require pas dinstallation sur disque Tout lenvironnement sera charg partir du CD
H. IDOUDI

18

Pour finir
Les distributions gratuites phares (documentation et tlchargement)
Ubuntu : http://ubuntu-fr.org Fedora : http://www.fedora-fr.org OpenSuse : http://fr.opensuse.org Mandriva : http://www2.mandriva.com CentOS : http://www.centos.org

Quelques commandes tester :


man id who logname groups passwd clear history

H. IDOUDI

19

2. Le systme de gestion de fichiers

H. IDOUDI

20

Prsentation gnrale
Dans Unix la notion de fichier ne se limite pas la simple notion usuelle de fichier disque Un fichier apparat comme un objet typ et pourra correspondre :
Un fichier disque au sens classique Une ressource (physique ou logique) du systme (device) Exemple: terminaux, imprimantes, disques physiques ou logiques, la mmoire physique ou la kernel memory (contient les tables du noyau)

SGF : Principe similaire aux autres systmes: arborescence de rpertoires et de fichiers


Plusieurs implmentations et types de systmes de fichiers: Ext2, Ext3, GFS, ReiserFs,

H. IDOUDI

21

Arborescence (1)

H. IDOUDI

22

Arborescence (2)
Rpertoires standards
/ : rpertoire racine du systme de fichiers /root : rpertoire de travail par dfaut de lutilisateur root /tmp: rpertoire des fichiers temporaires /bin: rpertoire des programmes accessibles tous les users /sbin: rpertoire des programmes accessibles au root uniquement /etc: contient des fichiers de configuration de services /lib: librairies partages et modules ncessaires au chargement du systme /var: fichiers dhistoriques (log), mails, /home: les rpertoires de travail des utilisateurs /boot: le noyau du systme et fichiers du dmarrage /dev: fichiers des priphriques /usr , /proc, .

H. IDOUDI

23

Chemin relatif et chemin absolu


Le chemin absolu: noter un fichier ou un rpertoire par le chemin complet partir de la racine
Exemple: /home/user1/test

Le chemin relatif: noter un fichier ou un rpertoire par rapport la position courante


Rp. Courant = /home => user1/test pwd: retourne le rpertoire en cours

.. : note le rpertoire parent . : note le rpertoire courant ~ : note le rpertoire de travail de lutilisateur en cours Exemples:
pwd = /home/user1 cd /home/user2 cd ../user2
H. IDOUDI

24

Types de fichiers
File: retourne le type du fichier
Fichiers ordinaires (-) Rpertoires ( d ) Liens symboliques (l) Fichiers block (b) Fichiers caractres ( c )

Exemple:

-l /dev brw-rw---- 1 root disk 3, 2 Jul 5 2000 hda :priphrique block crw-rw-rw- 1 root tty 4, 9 Jul 5 2000 tty9 :priph. caractre lrwxrwxrwx 1 root disk 3, 2 Jul 5 2000 cdrom -> hda : lien

$ ls

H. IDOUDI

25

Manipulation des rpertoires


Les noms des rpertoire et des fichiers sont sensibles la casse Un nom de rpertoire ou de fichier commenant par . est un fichier ou un rpertoire cach Cration: mkdir nom_rp1 [nom_rep2 nom_repN] Destruction :
rmdir: efface un rpertoire vide rm r: efface rcursivement le contenu dun rpertoire puis celui-ci

Listage: ls
ls a: lister aussi les fichiers et les rpertoires cachs ls l: lister le contenu avec affichage de plus dinformations
$ ls l => drwxr-xr-x 1 user1 users 112 oct 12 09:07 premier => d : indique un rpertoire; les permissions; nombre de liens; utili. propritaire; groupe propritaire; taille; date de dernire modif., nom
H. IDOUDI

26

Manipulation des fichiers (1)


Cration:
touch nom_fichier: cre un fichier vide Utiliser un diteur de texte: vi, pico, emacs

Suppression: rm Copie: cp fichier_source fichier_dest Dplacement: mv fichier destination Renommage: mv fichier nouv_nom Affichage du contenu dun fichier:
cat less more

H. IDOUDI

27

Manipulation des fichiers (2)


Afficher n premires lignes dun fichier: head -n fichier Afficher n dernires lignes dun fichier:
tail n fichier tail f fichier : ouverture en fin de fichier avec visualisation en temps rel des modifications. Remarque: par dfaut n=10

Type de fichier: file fichier Juxtaposer les lignes des 2 fichiers:


paste [-d carac. sparateur] fichier1 fichier2 (en colonnes)

cat fichier1 >> fichier2 (les lignes de fichier1 aprs les lignes de fichier2)
H. IDOUDI

28

Caractres spciaux (1)


* : remplace n (0 et +) caractres ?: remplace exactement 1 caractre
ls test* => affichage de: test, test1, test10, test254, ls test? => affichage de: test1

$: interprt comme la valeur de la variable qui vient aprs


echo HOME => affiche le mot HOME echo $HOME => affiche : /home/user1

H. IDOUDI

29

Caractres spciaux (2)


` ` : tous ce qui sera mis entre ces cotes sera considr comme tant une commande et sera excut : tous ce qui trouve entre ces doubles cotes sera considr comme une chane de caractres sauf les caractres spciaux : tous ce qui trouve entre ces cotes sera considr comme une chane de caractres \ : annule leffet du caractre spcial qui vient juste aprs

H. IDOUDI

30

Caractres spciaux (3)


Exemples
echo mon rpertoire est $PWD => affiche: mon rpertoire est /home/user1 echo mon rpertoire est $PWD => affiche: mon rpertoire est $PWD echo `date` => 04:09:2006 echo le prix est 10 \$ => affiche : le prix est 10$ (le caractre \ protge $)

H. IDOUDI

31

Les inodes (1)


Inode= descripteur dun fichier dans larborescence Structure compose de plusieurs champs dinformations et de plusieurs pointeurs. Informations : Inode = structure { Num numro dinode unique dans larborescence Nom le nom du fichier
Mode les permissions du fichier UID lutilisateur propritaire de ce fichier GID le groupe qui possde ce fichier Taille la taille du fichier en octets ATIME date de dernier accs MTIME date de dernire modification du fichier CTIME date des dernires modifications de linode }
H. IDOUDI

32

Les inodes (2)


Chaque inode contient aussi un ou plusieurs pointeurs vers un ou plusieurs structures fichiers. Chaque inode possde un numro unique Pour visualiser les informations contenues dans linode associe un fichier
stat nom_fichier

ls i permet de lister les fichiers avec leur numros dinodes correspondant

H. IDOUDI

33

Les liens (1)


Lien symbolique (soft): un nouveau fichier ayant une nouvelle inode qui pointe vers le fichier original (contient son chemin daccs). Lien physique (hard): un nouveau pointeur de linode du fichier original vers une nouvelle structure fichier une manire de donner plusieurs noms un fichier sans dupliquer ses donnes disque et sans cration dune nouvelle inode.
$ ln fichier lien_hard $ ln s fichier lien_soft

Fichier original et lien physique identiques Une inode persiste jusqu destruction du dernier lien physique vers lequel elle pointe
H. IDOUDI

34

Les liens (2)

Donnes

Inode_soft Fichier_soft

Inode_origine Fichier_origine Fichier_hard

Si on supprime le fichier original le lien symbolique pointe vers le vide Cependant, le lien physique pointe toujours vers les donnes originales et garde sa consistance
H. IDOUDI

35

Autres commandes sur les fichiers (1)


sort
trie lentre ligne par ligne options: -r inverse lordre de tri

+n : ignore les n 1ers champs -n : tri numrique -u : afficher une instance unique de chaque ligne -b : ignorer les blancs en dbut des champs -f : confond les lettres majuscules et minuscules

H. IDOUDI

36

Autres commandes sur les fichiers (2)


uniq
Affiche un fichier en dtruisant les lignes conscutives dupliques options: -u (affiche les lignes "uniques"), -d (affiche les lignes "dupliques")

wc
compter le nombre de lignes, le nombre de mots et le nombre de caractres dun fichier. wc -l fichier : retourne le nombre de lignes de fichier wc -w fichier : retourne le nombre de mots de fichier wc -c fichier : retourne le nombre de caractres de fichier

H. IDOUDI

37

Autres commandes
paste : permet de concatner deux fichiers en colonne Exemple : paste d% test1 test2 : gnre un texte construit par le contenu de test1 dans la 1re colonne et test2 en deuxime colonne avec le sparateur de colonnes % Compression de fichiers : gzip, bzip, compress, .. Dcompression de fichiers : gunzip, bunzip, uncompress, .. Archivage : tar Montage / dmontage de partitions ou de volumes disques : mount / umount
H. IDOUDI

38

3. Scurit du systme de fichiers

H. IDOUDI

39

Introduction
Chaque lment du SGF appartient un utilisateur, est associ un groupe et porte des permissions dfinissant les droits d'accs pour chaque type d'utilisateur. Par dfaut ( la cration), l'utilisateur propritaire d'un lment sera celui qui l'a cre. Le groupe propritaire est le groupe par dfaut de l'utilisateur propritaire. L'utilisateur propritaire a le droit de modifier les droits daccs de ses fichiers et ses rpertoires. L'utilisateur propritaire a le droit de modifier l'appartenance d'un de ses lments --> il le donne un autre utilisateur et perd par consquent ses droits. Exception : root a tous les droits sur tous les fichiers mme ceux d'autres utilisateurs.
La commande ls -l donne ces informations : $ ls l premier -rwxr-xr-x 1 user1 users 112 oct 12 09:07 premier

H. IDOUDI

40

Les permissions standards (1)


Pour chaque lment du SGF, on distingue 3 types dutilisateurs, chaque type aura des permissions ou autorisations spcifiques. 3 permissions standards sont dfinies, chaque type d'utilisateur aura une combinaison parmi ces trois. Les permissions peuvent tre reprsentes par des lettres ou numriquement en sommant les chiffres associes aux permissions de chaque type d'utilisateur.
3 types dutilisateurs: u: utilisateur Propritaire g: groupe propritaire o: (others) : autres 3 types dautorisations: r (read)= 4 w (write) =2 x (execute) =1

H. IDOUDI

41

Les permissions standards (2)


Exemple : $ ls l premier -rwxr-xr-x 1 user1 users 112 oct 12 09:07 premier Le champs permissions : rwxr-xr-x
3 premiers caractres: permissions pour le propritaire (user1) : rwx (lire, crire et excuter) --> somme numrique =7 3 caractres suivants: permissions pour le groupe propritaire (users) : r-x => lire et excuter mais pas de modification (w non accorde) --> somme numrique =5 3 derniers caractres : pour les autres utilisateurs : r-x --> somme numrique =5

quivalent numrique des permissions standards de ce fichier : rwxrxr-x = 755


H. IDOUDI

42

Les permissions standards (3)


Signification des permissions :

Permission r w

Pour les fichiers Droit de lecture (cat, less, etc) Droit d'criture (modification du contenu par un diteur) Droit d'excution (ncessaire pour les binaires et les scripts)

Pour les rpertoires Droit de lister le contenu (ls) Droit de crer de nouveaux lments l'intrieur (mkdir, touch, etc) Droit d'accs ( se positionner l'intrieur par cd)

H. IDOUDI

43

Modification des permissions


Chaque utilisateur a le droit de modifier les permissions de ses fichiers et de ses rpertoires (root peut tout changer) Changer les permissions : chmod $ chmod num fichier
num: quivalent numrique des nouvelles permissions qu'on veut appliquer sur fichier Exemple: chmod 644 fichier <=> rw-r--r--

$ chmod [ u| o| g ] r|w|x fichier


ajoute ou limine une permission pour un type dutilisateur donn

Exemples : $ chmod g+w fichier : ajoute la permission d'crire pour les membres du groupe propritaire. $ chmod o-r fichier : supprime la permission de lire pour les autres. $ chmod +x fichier : rend le ficher excutable par tout le monde (u+g+o)

H. IDOUDI

44

Gestion d'appartenance
Chaque utilisateur peut modifier l'appartenance de ses lments (root peut changer l'appartenance de n'importe quel lment) Changer l'utilisateur propritaire : chown
Changer l'utilisateur propritaire uniquement

$ chown user2 fichier


Changer le propritaire et le groupe propritaire :

$ chown user2.users fichier Changer le groupe propritaire : chgrp


$ chgrp users fichier

H. IDOUDI

45

Gestion des utilisateurs


3 types dutilisateurs :
Ladministrateur du systme : root Les utilisateurs systme Les utilisateurs non prvilgis

Le fichier /etc/passwd contient la liste des utilisateurs dclars dans le systme root peut crer de nouveaux utilisateurs non prvilgis.
$useradd nom_utilisateur crer un nouveau utilisateur $passwd nom_utilisateur donner ou changer le mot de passe dun utilisateur $passwd changer le mot de passe de lutilisateur courant

Identit de lutilisateur de la session courante :


$id $whoami

$userdel nom_utilisateur supprime lutilisateur du systme ainsi que son mot de passe sans supprimer son rpertoire de travail
H. IDOUDI

46

Gestion des groupes


Un utilisateur peut appartenir plusieurs groupes :
Le groupe initial ou par dfaut : porte le mme nom de lutilisateur Possibilit de cration dautres groupes et dajout dutilisateurs

Le fichier /etc/group contient la liste des groupes dclars dans le systme root peut crer de nouveaux groupes.
$groupadd nom_groupe crer un nouveau groupe $usermod G nom_utilisateur nom_groupe ajoute lutilisateur un groupe

Supprimer un groupe (sans supprimer les utilisateurs) : $ groupdel nom-groupe

H. IDOUDI

47

Les permissions spciales


Permissions spciales:
Setuid: Applicable sur un fichier excutable. Lutilisateur excutant le fichier aura les mmes privilges que lutilisateur propritaire.

$ chmod u+s fichier $ ls -l fichier -rwsr-xr-x ( ..... ) fichier


Setgid: Applicable sur un rpertoire. Tout lment cre lintrieure appartiendra au groupe propritaire du rpertoire.

$ chmod g+s rep $ ls -l drwxr-sr-x ( ..... ) rep


Sticky bit: Applicable sur un rpertoire. Les lments lintrieure peuvent tre accessibles en lecture et criture mais ne peuvent tre supprims que par leurs propritaires.

$ chmod +t rep $ ls -l drwxr-xr-t ( ..... ) rep


H. IDOUDI

48

Les permissions par dfaut


Les fichiers et les rpertoires nouvellement cres portent des permissions standards par dfaut Gnralement, mme valeur pour tous les utilisateurs non privilgis et une valeur spciale pour root. Le complmentaire des permissions standards par dfaut est stock dans une variable systme appele UMASK UMASK : valeur sur 4 chiffres
Le 1er : 0 indique la forme octale des permissions initiales Les 3 derniers : complment de 666 des permissions initiales Pour les rpertoires, la permission x est ajoute par dfaut la cration

Afficher le masque pour lutilisateur en cours:


umask : permissions sous forme octales umask -S : sous forme symbolique (alphabtique)

Changer le masque (des permissions standards) : umask nnn


$ umask 022: les fichiers cres auront par dfaut les permissions 644 et les rpertoires 755 $ umask 000: tous les fichiers qui seront cres auront les permissions 666, les rpertoires 777
H. IDOUDI

49

Vous aimerez peut-être aussi