Vous êtes sur la page 1sur 134

GENERALITE

 Qu'est-ce qu'un logiciel Libre ?


La compilation

Un programme informatique, que ce soit un noyau ou un logiciel, est constitué de nombreuses lignes de
code, écrites dans un langage de programmation (le langage C dans le cas du noyau Linux). Ce code n'est
généralement pas utilisable en tant que tel. Il faut passer par la phase de compilation qui transforme le code
source en programme exécutable, souvent appelé binaire. Il suffit d'avoir le binaire pour utiliser le
programme ; on n'a pas besoin des sources du programme.

Il n'existe pas de moyen de remonter aux sources complètes du programme à partir du seul binaire. Quand on
achète un logiciel (Microsoft Office par exemple) ou un système d'exploitation (Windows par exemple), on a
un CD qui contient le binaire, mais pas les sources. Il est donc impossible de savoir comment le programme
est conçu. Par conséquent, on ne peut pas modifier le programme. On peut seulement l'utiliser et
éventuellement le copier à l'identique.

Les logiciels propriétaires et les logiciels Libres

Les logiciels propriétaires sont donc les logiciels dont une licence, souvent payante, ne donne qu'un droit
limité d'utilisation. On n'a la plupart du temps accès qu'aux binaires de ces logiciels. Certains logiciels
propriétaires sont gratuits, on les appelle alors des freewares.

Les logiciels libres sont les logiciels que l'ont peut librement utiliser, échanger, étudier et redistribuer. Cela
implique que l'on ait accès à leur code source (d'où le terme équivalent OpenSource).

Le projet GNU
Les logiciels libres

Scandalisé par les restrictions imposées par les logiciels propriétaires, Richard Stallman lance, en 1983, le
projet GNU, qui a pour but de développer un système d'exploitation libre complet et inspiré d'unix, afin de
contrer le développement croissant des logiciels propriétaires. L'histoire raconte que c'est une histoire de
pilote d'imprimante qui lui a fait prendre conscience du danger de la logique propriétaire.

Il fonde alors une association, la Free Software Foundation, (Figure 1.2) et écrit le GNU Manifesto, dans
lequel il décrit les quatre libertés fondamentales que doit respecter un logiciel pour être qualifié de logiciel
libre (free software en anglais) :

 la liberté d'exécution : tout le monde a le droit de lancer le programme, quel qu'en soit le but ;
 la liberté de modification : tout le monde a le droit d'étudier le programme et de le modifier, ce qui
implique un accès au code source ;
 la liberté de redistribution : tout le monde a le droit de rediffuser le programme, gratuitement ou non ;
 la liberté d'amélioration : tout le monde a le droit de redistribuer une version modifiée du programme.

Figure 1.2. La fondation pour le logiciel libre

1
La licence GPL

Pour donner un cadre juridique aux logiciels du projet GNU, il écrit une licence, la GNU General Public
License alias GPL (il existe une traduction française non officielle). Cette licence reprend les quatre libertés
fondamentales citées précédemment et impose pour la liberté d'amélioration que les versions modifiées d'un
logiciel sous licence GPL ne peuvent être redistribuées que sous cette même licence. Richard Stallman invite
alors tous les logiciels libres à adopter la licence GPL (le logo de cette licence est présenté en Figure 1.3).

Figure 1.3. Le logo de la licence publique générale

Très tôt, Linus Torvalds adopte la licence GPL pour son noyau Linux. Aujourd'hui, de très nombreux
logiciels libres sont distribués sous Licence GPL (VLC media player par exemple). Mais la licence GPL
n'est pas la seule licence utilisée pour les logiciels libres. Par exemple, il existe aussi la licence BSD, qui
diffère de la licence GPL par le fait qu'une version modifiée d'un logiciel sous Licence BSD peut être
redistribuée sous une autre licence, même propriétaire.

2
Présentation du système UNIX.
Caractéristiques d’UNIX :
Un système d’exploitation est un ensemble de programmes qui coordonnent le fonctionnement des différents
composants matériels et logiciels d’un système informatique.
UNIX est un système d’exploitation ayant les caractéristiques suivantes :

Multi-utilisateurs et Multitâches : cela signifie que plusieurs utilisateurs peuvent accéder


simultanément au système et exécuter un ou plusieurs programmes.

Temps partagé : c’est-à-dire que les ressources du processeur et du système sont réparties entre
les utilisateurs.

Système de fichiers hiérarchique : plusieurs systèmes de fichiers peuvent être rattachés au


système de fichiers principal ; chaque système de fichiers possède ses propres répertoires.

Entrées-Sorties intégrées au système de fichiers : les périphériques sont représentés par des
fichiers, ce qui rend le système indépendant du matériel et en assure la portabilité ; l’accès aux
périphériques est donc identique à l’accès aux fichiers ordinaires.

Gestion de la mémoire virtuelle : un mécanisme d’échange entre la RAM et le disque dur


permet de pallier un manque de RAM et optimise le système.

Processus réentrants : les processus exécutant le même programme utilisent une seule copie de
celui-ci en RAM.

Interface utilisateur interactive (shell) : elle est constituée d’un programme séparé du noyau
permettant à l’utilisateur de choisir son environnement de travail. Elle intègre un langage de
commandes très sophistiqué (scripts)

Présentation du système LINUX


Qu'est-ce que Linux ?
Un noyau

Linux désigne au sens strict un noyau de système d'exploitation.

Figure 1.4. Tux, la mascotte de Linux

3
Le noyau est la couche de base d'un système d'exploitation. C'est le noyau qui gère la mémoire, l'accès aux
périphériques (disque dur, carte son, carte réseau, etc.), la circulation des données sur le bus, les droits
d'accès, les multiples processus qui correspondent aux multiples tâches que l'ordinateur doit exécuter en
même temps, etc.

Par contre, le noyau ne gère pas le mail, l'affichage des pages Web, ou encore le traitement du texte. Ce sont
des programmes ou applications qui s'en chargent. Ces programmes viennent se greffer sur le noyau, et ils
doivent être adaptés à celui-ci.

Ce noyau de système d'exploitation a l'originalité d'être multi-utilisateurs et multi-tâches et de fonctionner


sur de nombreuses plates-formes (Intel, PowerPC, Sparc, etc.). Il est conforme à la norme posix et est
distribué sous Licence GPL. Il a la réputation d'être fiable, stable et sécurisé. Son appartenance au monde
du libre garantit une correction rapide des erreurs qui pourraient être découvertes.

Découverte
Installer Linux est très simple. Les tâches d’administration communes le deviennent aussi. La
complexité du système est masquée par de nombreux outils, graphiques notamment, qui tendent à
simplifier le travail des utilisateurs et des administrateurs. Cette simplicité apparente cache pourtant
une réalité différente.
Chaque distribution est livrée avec une interface qui lui est propre. Les centres de contrôle de
Redhat, Mandriva, openSUSE, Ubuntu, etc. sont tous différents. Il ne s’agit pas de se
spécialiser dans l’une ou l’autre des interfaces. Toutes ces interfaces s’appuient sur les mêmes
outils, ce sont des front-ends. Ils modifient les mêmes fichiers de configuration. Les commandes
et fichiers de configuration sont communs à l’ensemble des distributions. Plutôt que
d’utiliser une interface qui risque d’être dépassée à la prochaine version, vous apprendrez directement
à maîtriser les bases du système. Ainsi vous ne serez pas bloqué par votre dépendance à un outil
spécifique.
Unix est avant tout un système d’exploitation qui est installé sur des serveurs, mais aussi
grâce à Linux, à la maison.

Quel matériel pour Linux ?


1. L’architecture

Linux existe pour au moins trois architectures matérielles courantes :


 x86 pour les ordinateurs dont les processeurs sont du type Intel (du 386 au Pentium 4)
ou AMD (Athlon, Duron, Sempron) 32 bits. Cette version fonctionne aussi sur les machines
à base de processeurs 64 bits.

 x86_64 pour les ordinateurs dont les processeurs sont du type Intel (Pentium 4 à partir
des séries 600, Xeon, Dual Core/Quad Core) ou AMD (Athlon 64, Sempron 64, Opteron)
64 bits. Cette version ne marche pas sur les processeurs 32 bits.

 ppc pour les ordinateurs dont les processeurs sont de type PowerPC c’est-à-dire les
anciens ordinateurs de marque Apple. Cette version ne s’installera pas sur les dernières
machines Apple basées sur un processeur de marque Intel.

Certains pilotes matériels ou applications sont encore peu ou mal adaptés à la version 64
bits.
4
Configuration matérielle de base
Linux supporte théoriquement tous les types de processeurs depuis la version 386, et
peut fonctionner avec seulement quelques Mo de mémoire. La distribution Polux Linux
fonctionne sur un 386 avec 4 Mo de mémoire. La distribution Damn Small Linux fonctionne
avec un 486, 16 Mo de mémoire et utilise 50 Mo d’espace disque. On trouve même des
distributions sur une ou deux disquettes démarrant avec 2 Mo de mémoire.
Les prérequis suivants doivent être respectés :
 Un processeur (ou plus) de type Intel Pentium et supérieur ou un équivalent de marque
AMD.
 Au moins 128 Mo de mémoire, mais 256 Mo ou plus apportent un réel confort d’utilisation.
Pensez plutôt à disposer de 512 Mo voire 1 Go pour une utilisation optimale. Au prix de la
mémoire ce n’est pas un luxe. Dansle cadre d’une installation minimale en mode texte, 64 Mo
suffisent.

 500 Mo d’espace disque pour une installation minimale (sans interface graphique
et seulement les outils de base), mais 2,5 Go pour une installation standard, auquel il
faut rajouter l’espace pour les données de l’utilisateur et la partition d’échange.

 Une carte graphique même ancienne compatible avec la norme Vesa, acceptant de
préférence le 1024x768 en 65 356 couleurs pour l’environnement graphique, et sans aucune
importance en mode texte.
Les performances globales restent acceptables sur un Pentium II 300 avec 256 Mo pour une
utilisation bureautique ou Internet simples. Les performances s’écroulent lors du
lancement simultané de plusieurs programmes. Sur un simple AMD Duron 800 avec 512 Mo,
les performances sont excellentes pour la plupart des usages classiques.

Choisir une distribution


1. Debian

Le projet Debian a été fondé en 1993 par Ian Murdock à une époque où
l’idée même de distribution Linux en était encore à ses balbutiements. Le
nom Debian provient de Debra (la femme de Murdock) et Ian. Debian a
longtemps été la seule distribution entièrement et uniquement composée de
logiciels libres et Open Source ce qui lui vaut toujours le nom officiel de
Debian GNU/Linux. Debian a aussi été supporté quelques temps
officiellement par la FSF comme distribution Linux de référence. Les
avantages de Debian sont nombreux :
o un nombre gigantesque de packages qui se chiffre en milliers,
o un logiciel d’installation appelé APT très pratique et performant,
o une distribution 100% open source,
o une stabilité à toute épreuve pour un environnement de production.

Ces avantages entraînent aussi quelques inconvénients :


5
 des packages souvent anciens,
 des mises à jour de la distribution irrégulières et trop espacées,
 des risques liés à la multiplication des paquets et des dépendances,
 une installation et une configuration compliquées.
Tous ces éléments font de Debian une distribution idéale pour les informaticiens, les ingénieurs
et administrateurs système et réseau, les environnements de production en entreprise, les puristes
du libre, les amateurs éclairés qui n’ont pas peur de mettre les mains dans le cambouis. Quant
aux débutants ils passeront probablement leur chemin au début sauf à vouloir apprendre sur le tas.

Ce qui différencie Debian des autres distributions


Au niveau de la philosophie

Debian est aujourd'hui la seule distribution majeure non commerciale. Debian est une organisation à but non
lucratif constituée d'un millier de développeurs bénévoles répartis sur toute la planète. Elle est dirigée par un
project leader élu par les développeurs. Les décisions se prennent au consensus ou par vote.

Les autres distributions GNU/Linux majeures sont des sociétés commerciales, ce qui ne les empêche pas de
produire des logiciels libres !

Debian se distingue aussi par son attachement très fort à la philosophie du logiciel libre. Cet attachement est
forgé dans son Contrat Social et dans Les principes du logiciel libre selon Debian ; qui sont deux textes
relativement courts que je vous invite à lire.

2. Ubuntu
Le milliardaire sud-africain Mark Shuttleworth,
principalement connu du monde entier pour
avoir été l’un des premiers touristes de
l’espace, mais aussi des informaticiens pour
avoir fait fortune en revendant sa société
Thawte spécialisée dans la sécurité à Verisign,
est un vrai informaticien qui a contribué au
projet Debian. Devant les
quelques inconvénients de la distribution il crée la distribution Ubuntu Linux en 2005 avec un
budget initial de 10 millions de dollars pour rémunérer les développeurs. Le mot Ubuntu est un
mot du langage africain bantou signifiant « humanité aux autres » ou encore « je suis ce que je
suis grâce à ce que nous sommes tous ». Cette définition reflète ce qu’est la distribution : un
dérivé de Debian dont le but est de fournir des logiciels plus récents et très fortement axés sur la
convivialité et l’ergonomie à l’aide du support du plus grand nombre :
o une distribution issue de Debian,
o une compatibilité avec les packages de Debian,
o un système d’installation très simple,
o une sortie tous les 6 à 8 mois,
o un environnement graphique agréable.

Cette distribution est idéale pour les étudiants, cependant la tentation est très forte de revenir
6
au fonctionnement d’une distribution Debian, les deux étant compatibles.

3. Red Hat et Fedora

S’il y a bien une société commerciale dans le monde Linux qui a marqué
et qui continue à marquer son époque, c’est bien la société Red Hat.
Fondée en 1995 par Robert Young et Marc Ewing, elle édite la célèbre
distribution éponyme dont la première version officielle date de 1994 (la
société a été fondée après la sortie de la distribution). Le système
de package RPM est apparu avec la version 2.0. Les distributions Red Hat
ont très fortement marqué les esprits car elles sont restées la référence
pendant presque dix ans. Chaque version était innovante tant dans
l’intégration des logiciels que dans son installateur (appelé anaconda) et
ses outils de configuration.
Cependant en 2003 la version 9.0 est la dernière destinée officiellement au grand public. Les versions
suivantes ont été confiées au projet communautaire Fedora qui continue tous les six mois à sortir une
nouvelle version. Red Hat se concentre maintenant sur le monde de l’entreprise avec des
distributions commerciales appelées RHEL (Red Hat Enterprise Linux) :
o des versions professionnelles destinées aux entreprises,
o des solutions du poste de travail au plus gros serveur,
o des architectures matérielles nombreuses,
o un support commercial,
o des mises à jour assurées pendant sept ans,
o 100% libre.

Vous vous doutez bien que même si l’installation d’une version RHEL AS (Advanced Server) est
possible sur un PC de bureau elle n’a pas forcément d’intérêt pour un poste de travail ou un
débutant. Bien que libre (ses sources sont intégralement disponibles librement) son coût avec le
support est très élevé. Cependant si l’installation ne vous fait pas peur la distribution CentOS
(Community Enterprise Operating System) est une copie exacte et téléchargeable de RHEL dont toute
trace des noms et visuels Red Hat a été supprimée.

Quant au projet Fedora, il suit un cycle de développement rapide et reste


destiné au grand public. Son installation est simple. Cependant l’ensemble
manque un peu de cohérence (par exemple l’outil de partitionnement des
disques n’est accessible que durant l’installation) ce qui en fait une
distribution idéale pour tous ceux qui, amateurs éclairés, souhaitent rentrer un
peu plus dans le détail.

4. Mandriva (ex-Mandrake)

Mandriva Linux (ex-Mandrake) est une distribution dérivée et longtemps entièrement compatible
avec la distribution Red Hat. Elle a été créée par Gaël Duval afin d’intégrer à la distribution

7
l’environnement de bureau graphique KDE contrairement à Red Hat qui intégrait
l’environnement GNOME. Pendant plusieurs années Mandrake a été la distribution phare en
forte compétition avec Red Hat. Mandrake était en effet (et est toujours) plus conviviale. Son
processus d’installation est un modèle du genre et son utilisation des plus simples. Renommée
Mandriva suite au rachat de la société Connectiva, la distribution est pourtant en perte
d’audience depuis quelques temps. Les raisons sont multiples mais fortement liées aux aléas
de la société Mandriva. Souffrant d’une image trop grand public, les solutions
professionnelles n’arrivent pas à s’imposer. Enfin la distribution grand public si elle reste
toujours au top techniquement souffre parfois de quelques problèmes d’instabilité.
Mandriva continue cependant d’innover fortement, notamment dans le poste de travail nomade avec
des distributions clé en main bootables depuis des clés USB, et c’est généralement plus par
habitude et ouïe dire qu’elle est bien souvent automatiquement conseillée aux débutants.

5. openSUSE

Se prononçant sousse, openSUSE est une distribution d’origine


allemande datant de 1992. Le nom de l’entreprise lui-même était
un hommage au célèbre Konrad Zuse l’inventeur des ordinateurs
modernes.
La distribution est originellement basée sur la distribution
Slackware. En 1996 SuSE se rapproche d’une distribution française
appelée Jurix créée par Florian La Roche qui est utilisée comme
base à la place de Slackware. Cette même année le développement
de l’outil YaST est démarré et la version 4.2, en fait totalement
nouvelle, sort. Au même moment SuSE utilise le nouveau
gestionnaire de packages de Red Hat appelé RPM.
Début 1997 SuSE tente l’aventure américaine en installant de nouveaux bureaux à Oakland.
Entre 1997 et 2003 la distribution SuSE ne cesse d’être améliorée pour devenir une
référence en matière de simplicité d’installation, d’administration et d’utilisation.
Si l’avenir de la distribution était garanti, la société Novell rachète tout d’abord la société
Ximian spécialisée dans le développement Open Source d’outils pour Linux dont un bureau
Gnome, une messagerie appelée Evolution et une suite de configuration appelée Red Carpet.
Novell annonce le rachat de la société SuSE en janvier 2004. Le développement est
désormais communautaire avec le projet openSUSE. Le monde entier s’il le souhaite peut
contribuer à l’amélioration du produit. En réponse, Novell s’engage à fournir à la communauté
tous les six à huit mois une version stable, libre et gratuite.

6. Les autres

Il est impossible de nommer toutes les distributions tant elles sont nombreuses. Outre les grandes
distributions que vous venez de rencontrer quelques autres noms sont à retenir. La distribution
Slackware est l’une des plus anciennes distributions. Elle était même livrée sur disquette. Durant
les toutes premières années la Slackware était la distribution de référence pour apprendre à utiliser
Linux. Elle est extrêmement dépouillée. Son installateur est réduit à la plus simple expression et la
plupart de la configuration doit être effectuée à la main. Son système de package est inexistant (il
s’agit de simples archives de fichiers compressés). C’est donc l’idéal pour les bidouilleurs et les
fondus de Unix. Cependant, ce n’est pas l’idéal pour les débutants.
La distribution Gentoo est très particulière. Plutôt que de vous livrer tous les logiciels déjà prêts à
être utilisés, son installateur va avec votre aide déterminer exactement la configuration de votre
machine et notamment votre modèle de microprocesseur en fonction de quoi il compilera (il
transformera le programme source sous forme de langage compréhensible en langage machine)
8
chaque composant logiciel que vous aurez sélectionné avec toutes les optimisations prévues
pour votre matériel. C’est ce qu’on appelle une distribution source. Le résultat peut être
intéressant : les performances de vos programmes peuvent être améliorées, étant en moyenne de
10% à 20% plus rapide. Mais à quel prix ! L’installation n’est pas forcément aisée pour les débutants
et surtout elle est très longue : plusieurs heures (voire dizaines d’heures) selon vos choix de logiciels
et la puissance de votre machine.
Une autre distribution surprenante est la LFS (Linux From Scratch). Ce n’est pas précisément une
distribution mais plutôt un guide vous donnant une méthode pour construire votre propre
configuration. Pas à pas, c’est à vous de choisir vos divers composants et la configuration de votre
système. Ainsi vous êtes certain d’obtenir exactement la distribution que vous voulez, ni plus ni
moins. Mais là encore les débutants, et même d’ailleurs les amateurs éclairés, passent leur chemin.
A côté de toutes ces distributions on trouve de nombreux dérivés. Aurox Linux dérive de Red Hat.
PCLinuxonline dérive de Mandriva. Kunbuntu dérive de Ubuntu (ou plutôt est une distribution
Ubuntu pleinement supportée mais intégrant l’environnement bureautique KDE) qui dérive de
Debian. CentOS dérive de RHEL, et ainsi de suite. Encore à côté il y a les mini-distributions qui
tiennent sur un mini cd ou une clé USB et c’est idéal pour dépanner un ordinateur.

7. Les LiveCD

Le LiveCD est une catégorie surprenante. Vous êtes certainement très nombreux à vouloir
essayer Linux pour voir à quoi ça ressemble ou pour vérifier s’il fonctionne correctement avec
votre matériel. Plutôt que de l’installer sur votre disque dur pensez d’abord à tester Linux sans
l’installer. Le LiveCD sert principalement à ça : c’est une installation complète de Linux qui est
fortement compressée et qui tient sur un seul cd ou dvd (dans ce cas on parle de liveDVD).

Pour utiliser un liveCD c’est très simple : insérez le CD ou le DVD dans votre lecteur et
redémarrez votre ordinateur en ayant bien vérifié dans la configuration de votre machine (le
setup du BIOS, voire le mode d’emploi de votre ordinateur) que votre lecteur CD ou DVD
est le premier à démarrer. Après quelques secondes (ou minutes parfois) de chargement,
voici que le bureau apparaît et tous les programmes les plus connus sont accessibles
alors que strictement rien n’est installé sur votre disque dur. Le LiveCD le plus connu
actuellement est Knoppix. Il est basé sur une distribution Debian, et qui plus est, s’il vous plaît
un installateur est prévu pour le copier sur votre disque dur. Chaque nouvelle version de
SUSE Linux arrive avec un LiveCD pour tester les dernières nouveautés sans l’installer.

ENVIRONNEMENT GRAPHIQUE SOUS LINUX

KDE et GNOME

KDE est un projet de logiciel libre historiquement centré autour d'un environnement de bureau pour
systèmes UNIX. Ce projet a évolué et il se compose maintenant d'un ensemble de technologies : des
bibliothèques et des API qui fournissent une couche d'abstraction logicielle multiplate-forme, un
environnement de bureau et des applications. Ces technologies sont utilisées principalement avec les
systèmes d'exploitation Linux et BSD. Le projet est également disponible avec un support variable mais
croissant sous : Mac OS X, quelques autres UNIX (Solaris notamment) ainsi que Windows. Pour sa version
4, l'équipe KDE propose sa version pour Windows via un simple installateur, les applications sont donc des
exécutables Windows et plasma devrait pouvoir s'ouvrir sur cette plateforme. L'installateur est officiellement
exécutable sur Windows 2000, XP, 2003 et Vista.

Du fait d'une certaine similitude avec l'interface graphique de Windows dans sa configuration par défaut et
du nombre important de logiciels disponibles pour cet environnement, il est installé en standard par de

9
nombreuses distributions. D'origine allemande (mais ses développeurs sont actuellement répartis sur tout le
globe), KDE est traduit en plus de 100 langues.

KDE est avec GNOME la principale alternative libre et grand public aux interfaces des systèmes
d'exploitation conventionnels (Windows et Mac OS). Ses logiciels sont généralement publiés sous la licence
GNU GPL, ses bibliothèques sous la GNU LGPL.

La mascotte du projet est un dragon vert appelé Konqi, qui apparaît dans différentes applications, notamment
quand l'utilisateur quitte une session.

Toute application provenant de GNOME (comme GIMP ou Inkscape) ou de tierce partie (comme Mozilla
Firefox, LibreOffice ou Éclipse) peut être utilisée sous KDE. Mais la richesse de KDE est la profusion
d'applications qui ont été écrites spécialement pour lui, et sont donc particulièrement bien intégrées et
légères lorsqu'elles sont utilisées sous KDE (respect des conventions et des particularités de cet
environnement et réutilisation des bibliothèques et autres composants déjà présents en mémoire).

Distribution

KDE est un des environnements de bureau libres les plus utilisés. Il est proposé par tous les principaux
systèmes d'exploitation libres, et de nombreux autres. Il est notamment l'environnement par défaut des
distributions Linux Mandriva Linux, openSUSE et Kubuntu.

Il est également possible d'installer KDE sur Windows et Mac OS X.

10
INSTALLATION DE LINUX
Dual boot Windows-Linux

1 Introduction et prérequis

1.1 Introduction

Bien que peu utilisées par le grand public, les distributions Linux donnent
souvent envie d'être testées, "juste pour voir" dit-on. Néanmoins, la plupart des
utilisateurs possèdent Windows et ne veulent pas s'en séparer juste pour tester
Linux.

Rassurez-vous, il est tout à fait possible de faire cohabiter les deux


systèmes et c'est d'ailleurs ce que va vous apprendre à faire ce tutoriel. Vous
allez ainsi pouvoir utiliser Windows et Linux sur la même machine.

En temps normal, votre ordinateur ne possède qu'un seul système. Il va


donc booter (démarrer) sur cet unique système sans vous demander quoi que ce
soit.

Lorsque vous possédez plusieurs systèmes, un système d'amorçage, aussi


appelé boot loader, se lancera au démarrage et vous permettra de choisir le
système sur lequel vous souhaitez booter.

Pour faire cohabiter les deux systèmes Windows et Linux, il existe une marche
précise à suivre, sans laquelle, vous risquez de vous retrouver sans aucun
système.

Dans ce tutoriel, nous partirons d'un disque dur vide afin de détailler toutes

les étapes. Voici les différentes étapes que nous allons suivre :

 Partitionnement et formatage
 Installation de Windows
 Installation de Linux

11
1.2 Prérequis
Pour ce tutoriel, nous utiliserons un disque dur Seagate de 500Go sorti d'usine,
c'est-à-dire non formaté. Ne vous inquiétez pas si vous possédez un disque
dur contenant déjà Windows, ça ne vous posera aucun problème. Néanmoins,
afin de regrouper le plus de cas possible, nous allons tout expliquer à partir de
zéro.

Nous allons installer côte à côte Windows 7 et Ubuntu 10.10 Maverick


Meerkat. Il vous faudra donc posséder une version de chacun de ces deux
systèmes.

Pour rappel, Windows 7, sorti le 22 octobre dernier, est la dernière version du


système d'exploitation de Microsoft. Celui-ci est disponible à partir de 120 €
pour la version familiale jusqu'à 285 € pour la version professionnelle. Dans
ce tutoriel, nous allons installer une version Ultimate, mais peu importe, la
technique est la même pour toutes les versions.
Ubuntu est un système d'exploitation libre. La dernière mouture, Maverick
Meerkat est sortie le 10 octobre dernier. Ubuntu est la distribution Linux la plus
utilisée et la plus connue.

Ubuntu est gratuit et disponible en téléchargement légal sur le


site ubuntu.com.

Il existe divers environnement de bureau; Gnome, KDE et xfce sont les


principaux. Grossièrement, on peut dire que ces environnements correspondent à
des interfaces graphiques différentes. Sachez que le plus utilisé est Gnome; c'est
donc celui que nous allons utiliser.

Les installations de Windows et Linux se feront à partir d'un lecteur optique, il


est donc nécessaire que vous graviez Windows sur un DVD et Ubuntu sur un CD.
Vous pouvez utiliser pour cela un logiciel de gravure tel qu'imgburn. Nous ne
détaillerons pas cette partie. Un seul conseil : utiliser la vitesse de gravure la
plus lente possible afin d'éviter les erreurs.

Dans le cas où votre disque dur n'est pas vierge, il est essentiel que vous
procédiez à des sauvegardes de vos données avant de réaliser ce tutoriel. Bien
que nous nous apprêtions à vous apprendre une technique "standard", personne
n'est jamais à l’abri d'un crash et d'une perte de données.

1.3 Préparation à la suite


Avant de commencer à pratiquer, vous avez besoin de connaissances
théoriques afin de comprendre ce que vous allez faire. La seconde partie de ce

12
tutoriel sera donc consacrée au formatage, au partitionnement et aux systèmes
de gestion de fichiers (SGF).

2. Un peu de théorie

2.1 Formatage

Le formatage désigne l'action de formater, c'est-à-dire de préparer un support à


recevoir des données. Le formatage entraîne la suppression de toutes les données
se trouvant sur ledit support.

Lors de l'installation d'un système d'exploitation, votre disque dur sera


automatiquement formaté avant de recevoir les données du nouveau système.

Chaque système d'exploitation nécessite un formatage différent afin d'accueillir


des données qui lui sont propres. On parle ainsi de Système de gestion de
fichiers (SGF). Il s'agit en fait d'une structure de données qui permet d'organiser
les fichiers sur votre support.

Il existe de nombreux SGF. On peut citer, en vrac, NTFS, FAT32, ext4, HFS,
FFS, etc.

Sous les systèmes d'exploitation Windows, le système de gestion de fichiers le


plus répandu est le NTFS (New Technologie File System). Disponible depuis
Windows NT, il succède au SGF FAT32. Il permet notamment la gestion des
droits approfondis sur les fichiers et le stockage de fichiers de 16Tb (en théorie),
contrairement à la restriction de 4Go du FAT32.

Sous Ubuntu, on retrouve principalement les SGF ext3 et ext4. Successeur de


l'ext2, l'ext3 à la différence d'être journalisé, tout comme le NTFS d'ailleurs.
L'utilisation d'un fichier journal permet notamment d'éviter les longues phases de
récupérations des données lors d'une extinction brutale d'un ordinateur. On
retrouve également l'ext4, disponible par défaut à partir d'Ubuntu 9.10. Le
principal avantage de l'ext4 sur son prédécesseur est une minimisation de la
fragmentation, c'est-à-dire de la disparité des fichiers sur un support.
Pour conclure, retenez simplement que le formatage est utile lors de l'installation

13
d'un nouveau système afin de préparer le support à recevoir les données.

2.2 Les partitions

Une partition fait référence à une partie logique de votre disque.


Lorsque vous achetez un disque dur neuf, il y a en général une seule partition
(identifiable par la lettre C: sous Windows). Néanmoins, un disque dur peut en
contenir plusieurs.

Chaque partition sera alors indépendante. On peut imaginer cela sous la forme
d'un camembert.

L'ensemble représente le disque dur et chaque "part" représente une partition. Les
parts ne se touchent pas et représentent chacune une fraction du disque dur.
Ainsi, on peut formater une partition sans pour autant supprimer toutes les
données du disque. C'est d'ailleurs exactement ce que nous allons faire pour
installer nos systèmes côte à côte.
Il existe trois types de partitions :

 Partition primaire
 Partition étendue
 Partition logique

Un disque dur peut contenir un maximum de quatre partitions primaires.


Ces dernières sont principalement utilisées pour les systèmes d'exploitation.

Si l'on souhaite créer plus de 4 partitions sur son disque, il faut alors créer une
partition dite étendue. Il s'agit d'une partition pouvait en accueillir d'autres,
appelées partitions logiques. La partition étendue sera alors vue comme un
conteneur.

14
On pourrait ainsi avoir, par exemple, trois partitions primaires C: D: et E: et une
partition étendue contenant trois partitions logiques F: G: et H:.

Pour notre tutoriel, nous allons créer 4 partitions :

 Une pour Windows, formatée en NTFS, taille : 50Go


 Une pour Ubuntu, formatée en ext4, taille : 20Go
 Une pour les documents, formatée en NTFS, taille : 395Go
 Une pour le swap, taille : 2Go.

Nous parlerons du swap plus tard. Pour l'instant, oubliez-le.

Voilà à quoi notre disque dur ressemblera après le partitionnement :

2.3 Informations supplémentaires

Les tailles choisies peuvent être évidemment modifiées selon vos besoins.

Si vous souhaitez utiliser Windows en tant que système d'exploitation


principal, nous vous conseillons de lui réserver au minimum 35Go afin de
pouvoir installer quelques logiciels élémentaires tout en gardant de la marge. Il
est plus prudent d'utiliser entre 45 et 55Go. Bien que cette partition stocke
uniquement les données liées au système et aux programmes, celle-ci peut se
remplir très vite.
De plus, il est mauvais d'avoir une partition système remplie. Il est donc
préférable de prévoir assez large. Vous pouvez même créer une partition de 70,
voir 80Go si vous êtes un gros joueur puisque ce sont les jeux récents qui prennent
le plus de place.

Si vous installez Linux "juste pour tester", alors 20 Go vous suffiront


amplement. Vous pouvez même descendre à 15, voir 10Go selon l'espace
15
disponible sur votre disque dur. En effet, le système et les applications sous Linux
demandent bien moins d'espace que celles sous Windows.

Si vous souhaitez faire d'Ubuntu votre système principal, alors vous pouvez
monter à 35/40Go. Plus serait inutile.

Enfin, la partition dédiée aux documents occupe généralement l'espace restant, dans
notre cas 395Go. Afin que cette partition soit accessible depuis les deux systèmes,
il est préférable de la formater en NTFS. Bien que le SGF des distributions Linux
soit généralement ext3 ou ext4, vous pourrez tout même accéder à votre partition
NTFS depuis ce dernier. Hors, si vous décidez de formater votre partition
documents en ext3, ce qui est tout à fait réalisable, celle- ci ne sera pas accessible
depuis Windows. En tout cas, pas nativement.

Il est donc important de bien choisir son système de gestion de fichiers et la


taille consacrée à chaque partition. Si vous êtes débutant, il est plus prudent de
suivre notre méthode, mais libre à vous de faire comme bon vous semble.

2.4 Le swap

Plus haut dans ce tutoriel, nous vous parlions d'une partition réservée au swap,
mais ne nous vous avons donné aucune information supplémentaire jusqu'à
maintenant.

Il s'agit en fait d'un système d'extension de la mémoire vive sous


Linux. Ainsi, si votre mémoire vive est pleine, Linux basculera vers la partition
"swap" pour y stocker temporairement des fichiers.

Le swap n'est pas utilisé uniquement dans le cas précédemment cité. Avec les
PCs récents comportant aujourd'hui au moins 2Go, voir 4Go de RAM, le
swap ne serait pas souvent utilisé. Il est également utilisé pour une
optimisation du système en stockant temporairement des données liées au
fonctionnement des programmes.

Ce système est particulièrement intéressant lors de l'utilisation de programme

16
nécessitant beaucoup de ressources, tel que du montage vidéo ou de la 3D par
exemple.
Le swap est également utilisé lors de la mise en veille du PC. Les données
contenues dans la mémoire vive sont copiées sur le swap et ainsi restaurés
ultérieurement. C'est à peu près le même principe pour la mise en veille des
systèmes Windows.

Le swap ne nécessite qu'une toute petite partition. Il y a quelques années, on


disait que la taille du swap devait être égale au double de la RAM. Dorénavant,
vu la quantité de RAM dans nos PCs, cette formule est devenue obsolète. Sachez
qu'1Go ou 2Go suffisent amplement.

Comme nous le verrons dans la partie suivante, la partition contenant le swap


ne possède pas réellement de SGF.

2.5 Récapitulatif

Avant de passer à la pratique, voici un petit récapitulatif de ce que vous venez


d'apprendre.

1. Une partition est une partie logique d'un disque dur. Un disque
dur peut contenir 4 partitions primaires au maximum.

2. Chaque partition nécessite d'être formatée dans un SGF


spécial en fonction des données qui y seront stockées.

3. Windows utilise le SGF NTFS.

4. Linux utilise principalement le SGF ext3/4.

5. Le swap est un système d'échange de données entre la mémoire


vive et le disque dur.

Vous êtes prêt ? Alors c'est parti !

3 Création des partitions

3.1 Booter sur le CD d'Ubuntu

Première étape pour obtenir son dual boot, la création des partitions. Pour cela,
nous allons utiliser GParted, une application fonctionnant sous Ubuntu.

17
Mais comment utiliser cette application si on n’a pas encore in stallé
Ubuntu ?

C'est très simple, Ubuntu est disponible en liveCD, c'est-à-dire que l'on peut
l'utiliser sans l'installer. Cette option est proposée lorsque vous booter sur le CD
d'Ubuntu que vous avez précédemment gravé.

Munissez-vous de votre CD, insérez-le dans le lecteur optique, puis démarrez


votre ordinateur.

Il va falloir indiquer à l'ordinateur de booter sur le CD et non pas sur le disque


dur. Pour cela, il faut modifier l'ordre de boot dans le BIOS.

Si vous ne savez pas comment faire, vous pouvez suivre cette partie du
tutoriel sur l'installation de Windows 7 indiquant comment modifier l'ordre
de boot .

3.2 Lancer GParted


Remarque : Cette partie du tutoriel a été réalisée avec Ubuntu 9.10. Néanmoins,
la marche à suivre est exactement la même avec toute autre version plus récente.

Directement avoir avoir booté sur le CD contenant Ubuntu, une première fenêtre
apparait et vous demande de choisir votre langue.

Sélectionnez-la à l'aide du clavier, puis appuyez sur Entrée. Attention, vous


avez 30sc pour faire votre choix.

Au menu qui s'affiche ensuite.


Plusieurs choix s'offrent à vous :

 Essayer Ubuntu : Cette option correspond à la version LiveCD


d'Ubuntu, c'est celle que nous allons choisir.
 Installer Ubuntu : Permet l'installation d'Ubuntu sur le disque dur.
Nous l'utiliserons plus tard.
18
 Vérifier si le disque a des défauts : Permet de détecter les problèmes de
gravure.
 Tester la mémoire : Inutile pour notre tutoriel.
 Amorcer à partir du premier disque dur : Permet de rebooter sur le
disque dur.

Sélectionnez Essayez Ubuntu sans altérer votre ordinateur puis appuyez sur
Entrée.

A partir de cet instant, votre ordinateur va mettre entre 1 et 10mn pour lancer
Ubuntu. Il se peut très bien que vous rencontriez des images "bizarres", voir des
commandes écrites en blanc. C'est normal, ne touchez à rien et attendez
qu'Ubuntu soit lancé.
Une fois le bureau chargé, il faut lancer Gparted. Pour cela cliquez sur Système
dans la barre des tâches en haut, puis sur Administration et sur Gparted.

3. 3
P r
és e
nt a
ti o
n

de GParted

Voilà à quoi ressemble GParted. La liste dans le coin supérieur droit permet de
sélectionner le disque dur sur lequel on souhaite effectuer les opérations.
Vous pouvez obtenir plus d'information sur ce dernier en cliquant sur Affichage,
puis sur Information sur le périphérique.

La partie inférieure liste les partitions contenues sur ce disque et la partir


19
grisée fait de même sous forme graphique. Dans notre cas, notre disque et vierge
il n'y a donc aucune partition.

Vous l'avez sûrement remarqué, ici pas de C: ou de D:, votre disque dur s'appelle
sûrement sda ou hda. En fait, sous Linux, chaque disque est identifié par trois
lettres. Les deux premières seront soit sd, soit hd. Ces deux lettres
correspondent en fait à votre disque dur. sd si c'est un disque connecté en
sATA, hd c'est un disque connecté en IDE.

Ainsi, votre premier disque sATA s'appellera sda, le deuxième sdb, puis sdc, etc...

Chaque partition est identifiée par un chiffre. La première partition de votre


premier disque sATA s'appellera alors sda1, la deuxième sda2, etc.

Comme nous le disions plus tôt dans ce tutoriel, nous allons détailler la
création des partitions de a à z. Si vous possédez déjà des partitions, deux
solutions s'offrent à vous :

1. Supprimer toutes les partitions existantes afin d'avoir un disque à


nouveau vierge et ainsi suivre le tutoriel. Pour cela, il suffit de cliquer
droit sur chaque partition, puis de cliquer sur Supprimer.

2. Rajouter uniquement les partitions nécessaires. Nous traiterons ce cas plus


loin.

Une dernière note avant de commencer. Toutes les opérations que nous
allons faire pourront être annulées tant que nous n'appuierons pas sur le
bouton Appliquer les modifications. Ainsi, si vous faites une erreur, vous
pouvez à tout moment annuler l'opération précédente via le raccourci clavier
Ctrl + Z.

3.4 Création de la partition Windows


Première partition à créer, celle de Windows. Rappelez-vous, il nous faut
une partition primaire, formatée en NTFS et d'une capacité de 50 Go.
Pour cela, dans la partie inférieur blanche, cliquez droit sur non alloué, puis
sélectionnez Nouveau.

20
En
pre
mie r,
indi q
uez la
taill e
de la
part it
ion
dan s
la
case Nouvelle taille. Cette taille est exprimée en Mo, 1Go = 1000Mo donc 50 Go =
50 000Mo. Par défaut l'espace libre restant va se positionner dans la case Espace
libre suivant. Si ce n'est pas le cas, faite le manuellement. Il faut absolument que la
case Espace libre précédant possède la valeur 0.

Vous pouvez également choisir la taille de votre partition en faisant glisser les
flèches dans la partie grisée.

Dans la première des deux listes sur la partie droite, il faut sélectionner le type de
partition. Sélectionnez Partition primaire. La deuxième liste permet de choisir le
SGF, sélectionnez NTFS.
L'étiquette correspondant au nom donné à la partition, vous pouvez écrire ce que
vous voulez.
Cliquez ensuite sur Ajouter. Encore une fois, aucune action est irrémédiable,
n'hésitez pas à créer/supprimer vos partitions.

GParted prend en compte les modifications et affiche dorénavant votre


partition ainsi que l'espace non alloué restant. Il va falloir faire de même pour
21
les trois autres partitions.

3.5 Création de la partition Linux


Même principe pour la partition Linux, cliquez droit sur non alloué, puis
sélectionnez Nouveau.

Pour Ubuntu, nous avions prévu une partition primaire de 20Go utilisant le SGF
ext3. Remplissez le champ Nouvelle taille avec la valeur 20 000 (Mo).
Déplacez l'espace restant dans le champ Espace libre suivant, puis
sélectionnez le type de partition et le système de gestion de fichiers. Enfin,
renseignez une étiquette puis cliquez sur Ajouter.
GParted affiche dorénavant les deux partitions systèmes et toujours l'espace
non alloué restant.

22
3.6 Création de la partition Documents
Troisième partition, celle dédiée aux documents. Comme pour les deux étapes
précédentes, créez une nouvelle partition et renseignez les champs. Il nous faut
une partition primaire en NTFS dont l'espace doit être égal à l'espace restant - 2Go
(pour le swap).
Pou
r
con
naîtr
e
tout
l'esp
ace
disp
onib
le et
laiss
é
2Go pour le swap, il suffit de renseigner 2000 dans le champ Espace libre
suivant, et 0 dans le champ Espace libre précédent.

23
GParted reconnait maintenant nos trois partitions. Il ne reste plus qu'à créer le
swap.

3.6 Création de la partition swap


Toujours pareil, créez une nouvelle partition en tant que partition primaire et
utilisez tout l'espace restant, c'est-à-dire 2 000Mo.

24
La seule différence provient du système de fichiers. Comme nous vous le disions
dans la partie précédente, la partition de swap utilise un SGF particulier. Dans la
liste présentée, sélectionnez linux-swap. Cliquez ensuite sur Ajouter.

GParted liste alors nos quatre partitions. Si vous avez correctement suivi les
précédentes étapes alors tout l'espace disponible devrait être utilisé. S'il vous reste
un champ non alloué, alors vous avez fait une erreur à un moment.

3.7 Redimensioner une partition

Cette étape est uniquement valable pour ceux qui possédaient déjà des partitions
avant de commencer ce tutoriel. Si vous n'êtes pas dans ce cas-là, vous pouvez
passer directement à la partie 3.8.

Pour pouvoir suivre la suite de ce tutoriel, il vous faudra dans tous les cas avoir au
moins 3 partitions, une pour Windows, une pour Linux et une dernière pour le
swap. Il va donc falloir vous arranger pour créer les partitions manquantes.

Dans la plupart des cas, il va falloir redimensioner vos partitions afin de libérer de
l'espace et créer les partitions manquantes. Sachez qu'une redimension nécessite
forcément de l'espace libre sur la partition concernée. Une redimension peut
également engendrer une perte de données, c'est pourquoi il faut impérativement
faire des sauvegardes.
Pour redimensioner une partition, cliquez droit sur cette dernière, puis
sélectionnez
25
Redimensionner/Déplacer.

Vous pouvez alors choisir la nouvelle taille de votre partition et l'espace à libérer
avant ou après cette partition. Vous obtiendrez ainsi un espace non alloué sur
lequel vous pourrez créer votre nouvelle partition.
A vous de vous arranger pour obtenir les partitions nécessaires selon votre
partitionnement actuel.

3.8 Appliquer les modifications

Une fois toutes les partitions créées, il va falloir appliquer les changements.
Jusqu'à maintenant, tout était annulable. En appliquant les modifications, les
partitions seront réellement créées.
Bien évidemment vous pourrez toujours faire de nouvelles modifications pour
revenir à un état précédent, mais si vous supprimez une partition qui contenait
des données, alors celles- ci seront définitivement perdues.
Une fois que vous êtes prêt, cliquez sur le bouton Appliquer toutes les
opérations en haut de la fenêtre.

Un warning vous rappelle que ces modifications peuvent engendrer des pertes
de données. Si vous êtes sûr de vous, cliquez sur Appliquer.

26
L’outil de partitionnement et formatage se lance. A partir de ce moment, veuillez
ne plus toucher à votre ordinateur tant que les opérations ne sont pas finies. Les
modifications peuvent être effectuées en quelques secondes comme en plusieurs
heures selon les opérations effectuées, la capacité du disque, etc.

Une fois les opérations effectuées, l'assistant vous résume les


modifications. Les changements sont désormais appliqués, vous ne pouvez plus
revenir en arrière.
GParted se met à jour et affiche les différentes partitions créées.

27
On remarquera notamment que les partitions portent désormais leurs noms :
sda1, sda2, etc.

3.9 Conclusion partielle

Vous possédez dorénavant vos quatre partitions prêtes à être utilisée. Vous n'avez
plus besoin de Gparted pour l'instant, vous pouvez le fermer, puis éteindre ou
redémarrez l'ordinateur en cliquant en haut à droite sur Ubuntu, puis sur
Eteindre.

Le lecteur CD éjectera automatiquement votre CD. Récupérez-le, puis


rangez-le, nous en aurons à nouveau besoin plus tard.

Maintenant que votre disque dur est prêt, nous pouvons passer à l'installation des
systèmes d'exploitation.

28
4 Installation des systèmes

4.1 Installation de Windows

Pourquoi installer Windows en premier et non pas Linux ?

Lorsque vous installez un système, celui-ci installe ce que l'on appelle le boot
loader. Le boot loader correspond à un écran de sélection du système sur lequel
vous souhaitez booter et qui vous sera présenté au démarrage de l'ordinateur.

Lorsque vous ne possédez qu'un seul système, le boot loader ne vous demande
rien et boot automatiquement sur l'unique système. Lorsque vous en avez
plusieurs, celui-ci vous propose de choisir le système sur lequel démarrer.

Le boot loader installé par Windows ne détecte que les systèmes Windows. Ainsi,
si vous installez Ubuntu, puis Windows, le boot loader ne détectera pas Linux et
bootera automatiquement sur Windows sans vous demander votre choix. Il existe
quelques bidouillages pour régler ce problème, mais c'est très pénible.

Linux, lui, installe un boot loader nommé grub. Celui-ci détecte tous les
systèmes installés sur votre ordinateur et vous propose ainsi un écran de sélection
pour faire votre choix.

Voilà pourquoi il est préférable d'installer Windows en premier.

Nous n'allons pas rappeler comment installer Windows puisqu'il existe déjà
un tutoriel complet dédié à l'installation de Windows 7.

Voici néanmoins les grandes parties de ce tutoriel :

 Booter sur le DVD contenant Windows


 Installer Windows
 Configurer le système et son compte utilisateur
 Installer les drivers

Bref, l'installation complète de A à Z.


Une fois Windows 7 installé, nous pouvons passer à l'installation du second
système, à savoir Ubuntu 10.10.

29
4.2 Installation de Linux
Pour ceux qui auraient loupé cette étape, Ubuntu 10.10, alias Maverick
Meerkat, est disponible en téléchargement sur ubuntu.com.

Tout comme pour Windows, nous disposons d'un tutoriel entier dédié à
l'installation d'Ubuntu 10.10.
Voici les différentes parties qui composent ce tutoriel :

 Booter sur le CD contenant Ubuntu


 Configurer le système
 Installer le système
 Découverte rapide de l'interface d'Ubuntu 10.10

Une fois l'installation d'Ubuntu 10.10 finie, vous pouvez revenir ici pour
finir le tutoriel.

4.3 Finalisation
Les deux systèmes étant installés, vous devriez rencontrer l'écran suivant lors
du boot. Il s'agit du fameux Grub qui vous permet de choisir sur quel système
d'exploitation booter.

Vous pouvez ainsi choisir aisément Linux ou Windows 7. L'option mode de


récupération Linux correspond en fait au mode sans échec de Windows.
Memory test, comme son nom l'indique effectue un test de la mémoire vive
(RAM).
Sachez que vous pouvez, si vous le souhaitez, disposer de 3, 4 ou même encore
30
plus de systèmes côte à côte. Il suffit pour cela de créer le bon nombre de
partitions et d'installer les systèmes dans le bon ordre pour ne pas avoir de
problème.

4.4 Conclusion
Créer un dual boot sur son ordinateur n'est pas toujours évident, surtout lorsqu'il
s'agit de deux systèmes différents et donc concurrents. Il y a des méthodes à
suivre et des bonnes pratiques à respecter.

Bénéficier de plusieurs systèmes sur son ordinateur peut-être très utile. Tout
d'abord, pour découvrir des nouveautés et enrichir sa culture en informatique.
Ensuite, pour bénéficier d'un système aléatoire si l'un des deux plante et
demande une réinstallation. Enfin, tout simplement pour apprécier deux
environnements différents et utiliser chacun à bon escient.

Voici un rapide résumé des grandes étapes à suivre pour créer un dual boot
Windows/Linux.

 Sauvegarder ses données.


 Se renseigner sur les SGF utilisés par les différents systèmes à
installer.
 Formater son disque dur et créer ses partitions (en utilisant GParted
par exemple).
 Installer Windows.
 Installer Linux.
 Passez en toute simplicité d'un système à un autre.

Cette méthode qui vous parait peut-être maintenant évidente ne l’est en fait pas
tant que cela. Elle demande un minimum de connaissances et quelques heures de
travail afin d'être menée à bien.

Maintenant que vous possédez un ordinateur comme neuf avec deux systèmes
tout propres, il ne vous reste plus qu'à installer vos applications favorites et
découvrir les joies du multi- boot !

31
Les Commandes Unix / Linux
cd /ls /cp /rm - rmdir /mkdir / mv /find / Autres commandes

Astuces Générales Raccourcis


Ctrl+Alt+Del quitte le serveur X
Ctrl+Alt+F2 Passe en mode console (donc plus de serveur X)
Ctrl+Alt+F7 Repasse en mode graphique quand on est en mode console.
Alt+F2 Affiche une fenêtre pour lancer un programme soit
préenregistrée soit personnel. D'une manière générale, ça
permet de lancer une commande

Commande d'administration
 Commandes Administration
 Messages Système
 La gestion des processus
 Éditer un fichier avec VI
 Recherche, analyse, modification

Arborescence UNIX classique


 Organisation des répertoires
 Les Droits sous Linux
 Qu'est-ce qu'un shell ?

Commandes de Base Linux


 Démarrage, redémarrage & arrêt
 Monter, démonter un système de fichiers
 Montage, démontage d'une partition Dos
 Montage du lecteur de CD-ROM
 Montage du lecteur de disquettes
 Copie d'une disquette
 Archivage

32
Se déplacer dans les répertoires (Change Directory)

cd.. : Remonte d'un niveau


cd / : Retourne à la racine
cd ~ : Retourne au répertoire précédent ~
cd ../.. monter de 2 niveaux dans la hiérarchie
le caractère "." désigne le répertoire courant.

Lister les fichiers d'un répertoire: (List Sorted)

ls -l : Permet de lister les attributs des fichiers


ls -d: Affiche uniquement les répertoires
ls -a : Liste tous les fichiers du répertoire y compris les fichiers cachés.
ls -m : Affiche les fichiers en les séparant par une virgule.
ls -t : Affiche les fichiers par date.
ls -lu : Affiche les fichiers par date du dernier accès et indique la date.
ls -F : Affiche les fichiers par type
ls -S : Affiche les fichiers trié s par ordre de taille décroissante.
ls -X : Affiche les fichiers par type d'extension
ls -r : Affiche les fichier en ordre alphabétique inverse
ls -alR / : Affiche tous les fichiers d'un système
ls -alR |grep doc : Affiche tous les fichiers contenant doc

Copier un fichier ou un répertoire: (copy)

cp : Demande s'il peut écraser le nom de fichier : répondre par Oui(y) ou


Non (n)
cp -i : Avertit de l'existence d'un fichier du même nom et demande s'il peut
ou non le remplacer.
cp -l : Permet de faire un lien en "dur" entre le fichier source et sa copie
cp -s : Permet de faire un lien "symbolique" entre le fichier source et sa
copie
cp -p : Permet lors de la copie de préserver toutes les informations
concernant le fichier.
cp -r : Permet de copier de manière récursive l'ensemble d'un répertoire et
de ses sous répertoires
cp -b : Permet comme l'option -i de s'assurer que la copie n'écrase pas un
fichier existant : le fichier écrasé est sauvegardé, seul le nom du fichier est
modifié et cp ajoute un tilde(~) à la fin du nom de fichier

cp /etc/passwd ~ (copie le fichier dans son repertoire perso)

Supprimer des fichiers et répertoires: (remove & remove


directory)

33
rmdir -d : Permet de supprimer un répertoire qu'il soit plein ou non
rm -r : Permet de supprimer un répertoire et ses sous répertoires
rm -f : Permet de supprimer les fichiers protégés en écriture et répertoires
sans confirmation
rmdir : Supprime un répertoire
rmdir -p rep1/rep2/rep : Supprime le répertoire et ses sous répertoire
associés

Créer des répertoires: (make directory)

mkdir : Crée un répertoire


mkdir -p rep1/rep2/rep3 : Crée un répertoire et ses sous répertoires
associés

Déplacer ou renommer un fichier: (move)

mv -b : Va effectuer une sauvegarde des fichiers avant de les déplacer


mv -i : Demande pour chaque fichier et chaque répertoire s'il peut ou non
le déplacer
mv -u : Demande a "mv" de ne pas supprimer le fichier si la date de
modification est la même ou plus récente que son remplaçant.

Recherche, analyse, modification de contenus

find / : Chercher a partir de la racine du fichier en court


find -name : Spécifier un nom de fichier
find -print : Afficher le résultat a l'écran
find, locate et which : Retrouver un fichier
diff : Affichage des différences entre fichiers
cmp : Comparaison binaire
cat et more : Voir un fichier
sort : Tri des lignes
df : Emplacement du montage des systèmes de fichiers (partitions) et
l'espace restant sur chacun d'eux
Sed : Permet d'appliquer des commandes sur un fichier et d'afficher le
résultat (sans modification du fichier)
du : Donne la place du disque utilisée par le répertoire courant
wc : Comptage des mots, lignes ou caractères
file : Donne le type de fichier
grep -c : Trouver une expression rationnelle dans un fichier: (grep) donne
le nombre de fois ou l'expression rationnelle a été trouvée dans le fichier:
grep -n : Pour rechercher des expressions rationnelles commencent par un
34
tiret

Autres Commandes

pwd : Où suis-je ?
man (et nom de la commande): Rechercher des informations sur une
commande.
which : Permet de connaître le chemin d'un exécutable
mdir : Affiche la liste des fichiers d'une disquette MS-Dos
mkmode : Crée un nom de fichier temporaire unique
emacs, joe : Éditer un fichier
ln : UNIX permet de créer plusieurs liens sur un même fichier avec la
commande
who : Liste les utilisateurs connectés sur la station
free : Mémoire utilisée
clear : Efface l'écran
touch : Met à jour les dates d'accès des fichiers
logout : Permet de fermer son compte utilisateur
logname : Permet de savoir sous quel nom on est logué
tar : Archivage de données : la commande
q : quitte

Monter, démonter un système de fichiers

La commande mount est utilisée par linux dès son démarrage. Elle permet
de monter un système de fichiers. Ce mo ntage est parfois effectué
automatiquement grâce au fichier de configuration /etc/fstab. Ce fichier
contient tout ce que linux doit monter lors de son démarrage, mount n'est
accessible que par root.

Montage, démontage d'une partition Dos (Ne doit pas être


en cours d'utilisation)

1: mount -t vfat /dev/hda1/dos/c


2: mount /dev/hda1/dos/c

Pour convertir automatiquement les fins de lignes des fichiers ASCII ms-
dos au format unix, utiliser l'option
conv. conv=binary/conv=auto -t vfat /dev/hda1 /dos/c
mount -o conv=auto -t vfat /dev/hda1 /dos/c

35
Démontage d'une partition Dos (Ne doit pas être en cours d'utilisation)
umount /dos/

Montage du lecteur de CD-ROM

1: mount -t iso9660 /dev/hdb /cdrom


2: mount /dev/cdrom /cdrom

On peut préciser l'option –o ou -r pour monter un périphérique en lecture


seule, tel qu'un cdrom ou une disquette protégée en écriture par exemple.

Montage du lecteur de disquettes

mount /dev/fd0 /floppy

Copie d'une disquette

cp /dev/fd0 disk.img :du lecteur de disquette --> disk


cp disk.img /dev/fd0 : d'un dick --> vers lecteur de disquette
ln -s /répertoire/nom_source /nom_destination : Création d'un lien
symbolique

Archivage

gzip : Le compactage et le décompactage des fichiers au format gz


gzip -gv backup.gz : Compresse le répertoire courant et crée le fichier
backup.gz
gzip -d backup.gz : Décompresse backup.gz
tar -zcvf /usr/pluton /home : Sauvegarde le répertoire home vers pluton
tar -zxcf /usr/pluton /home : Restaure pluton dans le répertoire home

Commande d'administration système Linux

at : Commande permettant de lancer une autre commande ou un processus


en différé.
cron : Outil logiciel disponible sous Unix permettant de lancer
périodiquement les processus indiqués dans la crontab.
crontab : table contenant des commandes qui doivent être exécutées
périodiquement. C'est le programme cron qui lance la
commande. Les périodes peuvent être des heures (cron.hourly), des jours
(cron.daily), des semaines (cron.weekly) ou des mois (cron.monthly)
chmod : Placer les droits d'utilisation des fichiers

36
chown : Désigner l'utilisateur et le groupe propriétaire des fichiers
adduser : Ajouter un utilisateur
passwd : Spécifier ou modifier un mot de passe
chfn : Décrire un utilisateur
userdel : Supprimer un utilisateur
mount : Utiliser votre CD-ROM, votre lecteur de disquette
shutdown -h : Arrêter le système
mkbootdisk (device /dev/fd0 2.2.13-4.mdk): Crée une disquette de Boot
lilo -u : Désinstalle LILO

Messages Système

cat /proc/interrupts : Affiche les IRQ utilisés


cat /proc/ioports : Affiche les ports I / O utilisés
cat /proc/dma : Affiche l'utilisation des canaux DMA
cat /proc/pci : Affiche l'utilisation des ports PCI

Redirection

Par défaut les périphériques d'entrée et de sortie des machines sont


respectivement le clavier et l'écran.
L'utilisateur peut modifier à sa guise cette convention. Il faut, pour ce
faire, spécifier une nouvelle direction lors de l'appel de la commande. On
ajoute dans le cas d'une redirection de l'entrée le symbole '<' et dans le cas
d'une redirection de la sortie le symbole '>' suivi par la nouvelle
entrée/sortie. Il s'agit en général d'un nom de fichier ou d'un chemin.
On peut donner comme exemple la commande cat.

cat file1 > file2 le résultat de la commande cat va se trouver dans le fichier
file2 plutôt qu'à l'écran ; le contenu de file2 est écrasé ;
De manière analogue, le caractère «<» indique une redirection de l'entrée
standard. La commande suivante envoie le contenu du fichier toto.txt en
entrée de la commande cat, dont le seul but est d'afficher le contenu sur la
sortie standard (exemple inutile mais formateur) :

cat < toto.txt


cat file1 >> file2 le résultat de la commande cat va à la fin du fichier file2,
plutôt qu'à l'écran (concaténation).

echo écrit sur la sortie standard les arguments séparés par des espaces, par
exemple : echo toto affiche la chaîne toto dans le terminal. On peut
également utiliser une redirection pour écrire dans un fichier : echo "il fait

37
beau" > fichier

La gestion des processus

top : permet de suivre les ressources que le processus utilisent


ps : permet de connaître les processus actifs à un moment donné
pstree : permet d'afficher les processus sous forme d'arborescence et donc
de voir leurs interdépendances

kill : Permet de tuer un processus en court : syntaxe kill [option] PID.


Pour tuer le processus, je peux d'abord faire un ps -ax pour connaître le
numero du PID et ensuite si par exemple le PID est 3600, je peux tuer la
connexion en faisant:
[root@localhost/root]# kill 3600

Démarrer et arrêter

halt stoppe tous les processus. Même chose que ci-dessus


shutdown -r 5 stoppe le système dans 5 mn et redémarre
Démarrage, Redémarrage & Arrêt

startx : demarrer Xwindows sous linux


shutdown -r : arrête et redémarrer (rebooter).
shutdown -r now Redémarre l'ordinateur immédiatement
shutdown -h : arrêter proprement linux.
shutdown -h now stoppe le système immédiatement sans redémarrer
shutdown -h 10 :00 programme l'extinction à 10h00 du matin (donné en
format 24h)
shutdown -h +10 Programme l'extinction de l'ordinateur dans 10 minutes
shutdown -t 30 Programme l'extinction de l'ordinateur dans 30 secondes
exit : Déconnexion de l'utilisateur courant
reboot stoppe le système et redémarre
startx démarre Xwindows
logout stoppe une connexion

Les commandes de gestion réseau

ping (interroge une carte réseau et exprime le temps aller-retour en mili


secondes)
     ping localhost
     ping @ip
     ping -v nom-hôte-distant

38
route (programme de gestion de la table de routage IP)
ifconfig (programme de configuration des interfaces réseaux, c'est à dire
des cartes réseaux)
netstat (affiche les informations sur les connexions réseaux)
nslookup ("name server", programme d'interogation des serveurs de noms
de domaines)

Les programmes de connexion distante

rlogin (connexion distante à un hôte sous le compte courant local)


    rlogin @ip
    rlogin -l root hôte-distant
    rlogin -l utilisateur hôte-distant
telnet (programme de connexion distante avec le daemon "telnetd")
    telnet hôte-distant
    telnet @ip
rsh ("remote shell", programme d'ouverture de session à distance)
    rsh hôte-distant
    rsh @ip
    rsh -l user hôte
rcp ("remote copy", programme de copie des fichiers distants)
ssh ("secure shell")

Partitions et fichier /etc/fstab

Quelques commandes sont indispensables à connaître pour manipuler les


partitions disques :
mount : monter une ressource de type disque sur un point de montage
(répertoire)
umount : « démonter » une partition (on ne peut pas démonter une
partition utilisée)
fuser : lister les processus qui se servent dun fichier
mkfs t type : formater une partition selon le type indiqué (ext2, ext3,
vfat, ...)
fsck : vérifier l'intégrité d'une partition (non montée) et réparer les
éventuels défauts.

Fichiers de configuration utiles

39
/etc/fstab : liste des partitions à monter au démarrage avec toutes les
options de montage
/etc/mtab : liste des partitions montées (information dynamique).

Monter une clé usb (ou d'une disquette)


Remarque : il faut être en "root" pour toutes les commandes suivantes.
1. Créer le dossier /mnt/cle :
mkdir /mnt/cle (pour une disquette mkdir /mnt/floppy)
2. Monter la clé :
mount -t vfat /dev/sda1 /mnt/cle (pour une disquette mount -t vfat
/dev/fd0 /mnt/floppy)

Éditer un fichier: (éditeur vi)

Passer du mode commande au mode texte, tapé du mode texte, enregistrer.


vi comprend deux modes : un mode "commande" et un mode "insertion",
après le lancement de vi nous sommes en mode commande : appuyez sur la
touche "Echap" puis sur "a" ("a", comme "append ", permet d'ajouter du
texte après le curseur). Vous voyez en bas de l'écran apparaître la ligne
"INSERT".

Sauvez un fichier : Il faut sortir du mode texte en appuyant à nouveau sur


la touche "Echap".
La mention "INSERT" disparaît, nous sommes en mode commande.
Tapez maintenant ":w
nomfichier" et sur la touche retour chariot (afin d'écrire ("write") le
fichier). Vous devez
obtenir en bas de l'écran ceci : "nomfichier" [New File] 3 lines, 142
characters written

Supprimer du texte et quitter vi

J'ai fait une faute d'orthographe! Nous allons supprimer le "p " qui est en
trop dans "suppprime" : déplacez le curseur sur un des "p" en trop,
passez en mode commande ("INSERT" ne doit pas apparaître à l'écran),
appuyez sur "x", le "p" a disparu.

Sauver les modifications effectuées : Passez en mode commande et tapez


" :wq" (write et quit). Vous êtes sorti de vi et votre fichier a été sauvegardé
sous linux-test. Pour revenir à vi en ouvrant le fichier linux-test au
démarrage tapez : [root@localhost/root]# vi linux-test

Si vous souhaitez quitter sans enregistrez les dernières modifications, il


40
vous faudra passer en mode commande et taper " : q!".

D'autres commandes vi.

A : permet d'ajouter du texte à la fin de la ligne.


i : permet d'ajouter du texte avant le curseur.
o : permet d'ajouter une ligne en dessous du curseur.
O : permet d'ajouter une ligne au dessus du curseur.
le retour chariot : permet d'aller à la ligne suivante.
dd : permet de supprimer la ligne courante.
X : permet de supprimer le caractère avant le curseur.
u : permet d'annuler la dernière commande effectuée.

41
ADMINISTRATION LINUX
RÔLE DE L'ADMINISTRATEUR
SYSTÈME
Unix étant un système d'exploitation multi−utilisateurs, la gestion du
système et des utilisateurs est confiée à un super−utilisateur nommé root
ou racine.

Le rôle de l'administrateur ou root est de :

 CONFIGURER LE NOYAU DU SYSTEME D'EXPLOITATION ;


 SAUVEGARDER LES DONNEES ET REPARER LES SYSTEMES
DE FICHIER ;
 GERER LES UTILISATEURS ;
 INSTALLER DE NOUVEAUX LOGICIELS ;
 INTEGRER DE NOUVEAUX DISQUES DURS ET DE
NOUVELLES PARTITIONS ;
 CONFIGURER LE PROCESSUS DE DEMARRAGE DE LINUX ;
 CONFIGURER LE RESEAU

Du fait que le super−utilisateur root possède tous les droits, il


doit posséder des connaissances concernant le fonctionnement du système.

PRINCIPAUX RÉPERTOIRES SYSTÈMES

Répertoires spéciaux :
. représente le répertoire courant,
.. représente le répertoire parent
~ représente le répertoire maison (home) de l'utilisateur

Fichiers cachés :
Sous Unix, les fichiers cachés commencent par un point. Par exemple, ~/.bashrc
est un fichier caché, dans le répertoire maison de l'utilisateur, qui contient la
configuration de son shell.

Jokers : ? et *

42
Les caractères ? et * dans les noms de fichiers et de répertoires permettent de
représenter des caractères quelconques. '?' représente un seul caractère, tandis que
'*' en représente un nombre quelconque.

Notion de chemin

Dans l'exemple ci-dessus, les répertoires sont représentés par des rectangles et les
fichiers par des cercles.

Chemin absolu : Pour accéder à un fichier à partir de la racine et en indiquant tous


les sous-répertoires rencontrés.

/etc/passwd
/usr/c2/projet/fichA

Chemin d’accès absolu = se réfère à la racine “/” –> similaire quelque soit le répertoire courant

Répertoire courant : A chaque processus est associé un répertoire, appelé


répertoire courant ou de travail (défaut).

Chemin relatif : On peut ne spécifier qu'une partie du chemin d'accès, pour que ce
chemin soit interprété à partir du répertoire courant.

Chemin relatif = se réfère au répertoire courant.


Ex : On se trouve dans le répertoire “Document”. On désigne le fichier
43
“toto.txt”.
- chemin relatif du fichier toto.txt : toto.txt
- chemin absolu du fichier toto.txt :
/home/puthier/Documents/toto.txt

En ecriture relative “./” signifie “le répertoire courant”


Ex : On se trouve dans le répertoire “Document”.
./toto.txt <=> toto.txt

LA MANIPULATION DES RÉPERTOIRES

44
Après l’ouverture de sa session, l’utilisateur se trouve sous le contrôle d’un
interpré- teur de commandes. Celui–ci est prêt à lire, analyser et éventuellement
exécuter les commandes qui lui sont soumises.

Chaque commande se compose d’un ensemble de champs séparés par un ou


plusieurs blancs et se termine par une fin de ligne (<return> ou “ line feed ”). Le
premier de ces champs est obligatoirement un nom de commande. Les autres
champs définissent des paramètres dont l’interprétation dépend de la commande
considérée. Nous reviendrons ultérieurement sur cette syntaxe.

Pour bien organiser son espace de travail, il est souvent utile de grouper ses
fichiers par centre d’intérêt en créant des sous–répertoires. Les principales
commandes pour gérer les répertoires sont :

pwd Print Working Directory


Affiche le chemin d’accès du répertoire courant. Juste après connexion
d’un utilisateur xstra, la commande pwd lui précisera son répertoire
d’accueil.

Exemple

xstra> pwd
/home/ xstra
xstra>

cd Change Directory
Permet de changer de répertoire de travail.

Exemple

xstra> cd .. § Permet de remonter au


§ répertoire père.
xstra> pwd
/home
xstra>

Exemple

xstra> cd § Permet de se repositionner


§ sur son répertoire d’accueil.
xstra> pwd
/home/xstra
xstra>

mkdir MaKe DIRectory


Crée un nouveau répertoire.

45
Exemple

xstra vient de se connecter. Il veut se créer un répertoire perl


à partir du répertoire courant.
xstra> mkdir perl
xstra> cd perl
xstra> pwd
/home/xstra/perl
xstra>

rmdir ReMove DIRectory


Supprime un répertoire, s’il est vide.

Exemple
L’utilisateur décide de supprimer le répertoire précédemment
créé. Ce répertoire est bien vide ; suppression possible.
xstra> cd
xstra> rmdir perl
xstra>

du Disk Usage
Donne l’occupation disque en bloc [un bloc valant 512 octets ou 1
Kilo–octets (Ko)] des sous–répertoires du répertoire spécifié ou, si
aucun répertoire n’est précisé, du répertoire courant
L’utilisation de cette commande, et en particulier la capacité d’un
bloc, est à vérifier sur votre machine par la commande man du ou
info du.

find FIND
Recherche un fichier à partir du répertoire donné.

Exemples

1) Recherche du fichier .bash profile chez l’utilisateur


connecté, puis affichage à l’écran de la liste des fichiers.
xstra> find . –name .bash_profile –print

2) Recherche de tous les fichiers de taille supérieure à 400 000


caractères à partir du répertoire courant et affichage à l’écran de la
liste de ces fichiers.
xstra> find . –type f –size +400000c –print

3) Etant positionné sur le répertoire de l’utilisateur xstra,


recherche de tous les fichiers de nom core. Puis suppression de ces
fichiers.
xstra> cd /home/xstra
xstra> find . –name core –exec rm {} \;
46
LA MANIPULATION DES FICHIERS
Quel que soit le travail que vous allez faire sur la machine, vous aurez à effectuer
certaines tâches élémentaires telles que lister le contenu d’un répertoire, copier,
effacer, ou afficher des fichiers. Nous présentons ci–dessous brièvement les
commandes qui les réalisent :

ls LiSt files
Permet d’obtenir la liste et les caractéristiques des fichiers
contenus dans un répertoire. Si aucun argument n’est donné, la
commande ls affiche la liste des noms des fichiers du
répertoire courant par ordre alphabétique.

Exemples

1) Positionnement sur le répertoire de l’utilisateur xstra.


ls permet d’obtenir la liste des fichiers et répertoires
existants à ce niveau.

xstra> cd /home/xstra
xstra> ls
bin develop essai projet1
xstra>

2) Même démarche mais en voulant obtenir toutes les entrées.


xstra> ls –a
. .bash_history bin projet1
.. .bash_logout develop
.bashrc .bash_profile essai
xstra>

3) En étant à la racine, la commande suivante permet de lister le


contenu du répertoire /home/xstra et d’obtenir toutes les
informations.
xstra> cd /
xstra> ls –l /home/xstra
total 8
drwxr xr x 2 xstra 512 jan 18 10:21 bin
drwxr xr x 2 xstra 512 jan 15 16:05 develop
rwxr r 1 xstra 15 jan 16 14:40 essai
drwxr xr x 2 xstra 512 jan 18 10:21 projet1
xstra>

cat conCATenate
47
La commande cat est une commande multi–usage qui permet
d’afficher, de créer, de copier et de concaténer des fichiers.

Exemples

1) Affichage du contenu du fichier /etc/passwd.


xstra> cat /etc/passwd

2) Création d’un fichier


xstra> cat >essai
Bonjour
Il fait beau
<ctrl–d> § caractère de fin de fichier
xstra>

locate

Permet d’afficher le nom complet de tout fichier ou répertoire correspondant à un


critère de recherche donné.

Exemple
Recherche les fichiers et répertoires contenant la chaîne de caractères touch.
xstra> locate touch
/usr/share/man/man1/touch.1.gz
/usr/X11R6/man/man4/mutouch.4x.gz
/bin/touch
xstra>

more MORE
less LESS (jeu de mots sur « more or less » : less est une
améliora- tion de more)
Permettent d’afficher page par page à l’écran le contenu d’un
fichier texte. La commande more est traditionnelle. Un
utilisateur de Linux doit lui préférer la commande less,
équivalente mais plus élaborée. less est utilisée par la
commande man pour l’affi- chage de la documentation en
ligne.
Exemple
# afficher page par page le contenu du
# fichier /etc/passwd
xstra> less /etc/passwd

La commande less, qui permet de remonter en marche arrière dans


le texte, est beaucoup plus configurable. La variable d’environne-
ment LESS permet d’en fixer les options.

48
cp CoPy
Cette commande permet la copie de fichiers. Elle s’utilise sous
quatre formes :

1) La copie d’un fichier source dans un fichier destination.

Exemple
Dans le répertoire xstra, copie du fichier essai dans
essai1.
xstra> cd /home/xstra
xstra> cp essai essai1
xstra>
Remarque
Il n’existe aucun contrôle sur le fichier destination : si le fichier
essai1 existe, son contenu est écrasé par le contenu du fichier
essai.

2) La copie d’un fichier dans un répertoire.

Exemple 1
Copie du fichier essai du répertoire xstra dans le répertoire
xstra/projet1.
xstra> cd /home/xstra
xstra> cp essai /home/xstra/projet1
xstra>

Exemple 2
Copie du fichier essai1 du répertoire père /home/xstra vers
le répertoire courant /home/xstra/projet1.
xstra> cd /home/xstra/projet1
xstra> cp ../essai1 .
xstra>

3) La copie d’un répertoire dans un autre (seuls les fichiers sont


copiés : on obtient un message d’erreur pour la copie des réper-
toires).

Exemple
Copie du contenu du répertoire xstra dans
/home/xstra/projet2.

xstra> cd /home/xstra
xstra> mkdir projet2
xstra> cp * /home/xstra/projet2
xstra>
49
4) La copie récursive permet de copier une arborescence.

Exemple
Copie de l’arborescence de xstra/projet1 sous
xstra/projet2.
xstra> cd /home/xstra/projet1
xstra> cp –r * /home/xstra/projet2
xstra>
mv MoVe
Change le nom d’un fichier ou d’un répertoire. En première analyse,
cette commande est équivalente à une copie, suivie d’une suppression.
Elle s’utilise sous deux formes :
1) Transfert de fichier1 dans fichier2 et suppression de
fichier1. Si fichier2 existe, il est effacé :
mv fichier1 fichier2

Exemple
Transfert du fichier essai1 dans toto.
xstra> cd /home/xstra
xstra> mv essai1 toto
xstra>

2) Transfert de(s) fichier(s) cité(s) dans le répertoire avec le(s)


même(s) nom(s) : mv fichier(s) répertoire

Exemple
Transfert du fichier toto dans le répertoire
/home/xstra/projet1.
xstra> cd /home/xstra
xstra> mv toto /home/xstra/projet1
xstra> ls toto
ls: toto: No such file or directory
xstra> ls /home/xstra/projet1/toto
toto
xstra>

rm ReMove
Supprime un (ou plusieurs) fichier(s) d’un répertoire :
rm fichier(s)

Exemple
Suppression du fichier toto du répertoire projet1.
xstra> cd /home/xstra/projet1
xstra> rm toto
50
xstra>

Grep Recherche, dans un ou plusieurs fichiers, de toutes les lignes


contenant une chaîne donnée de caractères

Exemple
Recherche de la chaîne de caractères beaux dans le fichier essai.
xstra> grep beau essai
Il fait beau
xstra>

Trouver du texte dans un fichier (grep)


La commande grep est un pivot des commandes UNIX. Elle cherche une expression
rationnelle dans un ou plusieurs fichiers,

exemple :

[delcros@mistra delcros]$grep fouille linux-commande.html

grep, la commande qui vous fouille les fichiers

La commande a donc affiché la ligne qui contient le mot "fouille" dans le fichier
linux-commande.html.

La richesse de la commande grep permet de faire des recherches sur plusieurs fichiers et
d'avoir un format de sortie adéquat. Par exemple, le fichier linux-commande.html est déjà
assez important et il serait agréable de savoir où se trouve cette ligne qui contient le mot
fouille dans le fichier :

[delcros@mistra delcros]$grep -n fouille linux-commande.html


902: Grep, la commande qui vous fouille les fichiers

Le mot fouille se trouve à la ligne numéro 902 et c'est l'option -n qui nous a permis de
connaître ce numéro.

Une autre option très utile est -l qui permet de n'afficher que les noms des fichiers
contenant ce que l'on cherche :

[delcros@mistra delcros]$grep -l fouille /home/delcros/personnel/html/*


/home/delcros/personnel/html/linux-commande.html

Ici, on demande à la commande grep de chercher l'occurence "fouille" dans les fichiers du
répertoire /home/delcros/personnel/html/. Le résultat est le nom des fichiers qui contiennent
l'occurence. Ici, seul le fichier "linux-commande.html" dans le répertoire contient le mot
"fouille".

Quelques-unes des autres options :


51
-c donne le nombre de fois où l'expression rationnelle a été rencontrée dans le fichier :

[delcros@mistra delcros]$ grep -c fouille linux-commande.html


10

-n est utile lorsque vous cherchez une expression rationnelle qui commence par un tiret
car si vous n'utilisez pas l'option -n, grep la considèrera comme une option !

wc Word Count
Cette commande permet le dénombrement des mots, lignes et
caractères dans un fichier. Un mot est défini comme une suite de
caractères précédée et suivie par des espaces, des tabulations, le début
ou la fin de la ligne.
wc lwcL fichier

l affiche le nombre de lignes


w affiche le nombre de mots
c affiche le nombre de caractères
L affiche la longueur de la ligne la plus longue
fichier liste de noms de fichiers à parcourir(ou entrée standard si vide)

Exemple
Impression du nombre de mots dans le fichier essai.
xstra> wc w essai
4
xstra>

ln LiNk
Permet de désigner un fichier par plusieurs noms différents.

Exemple
Le fichier f1 existe, le fichier New f2 est créé sans occupation
disque et est lié au fichier f1.
xstra> ln f1 New_f2
xstra> ls
f1 New_f2
xstra>
Le fichier (en tant qu’espace disque) porte les deux noms.
touch TOUCH
Cette commande permet (entre autres) de créer un fichier vide.

Exemple

52
xstra> touch f1
xstra>

echo ECHO
Affiche à l’écran le texte qui suit la commande echo.

Exemple
xstra> echo Il y a du soleil
Il y a du soleil
xstra>

Nous venons de décrire de façon succincte quelques commandes de base de Linux.


Ces commandes sont plus détaillées avec d’autres options.

MANUAL, LE MANUEL LINUX


La commande man permet de rechercher des informations sur les commandes.
man est le manuel Unix en ligne. Cette commande recherche les informations, le
cas échéant, dans deux répertoires et leurs sous–répertoires :

/usr/man
/usr/local/man

La liste des répertoires man référencés est définie dans le fichier


/etc/man.config.

L’exécution de la commande permettant d’obtenir des informations sur


la commande ls est :

xstra> man ls § La documentation Linux relative


§ à ls apparaîtra à l’écran page par page.
xstra>

Lors de l’appel à cette aide en ligne, vous trouverez des chiffres entre parenthèses
situés après les noms de commandes. Ces chiffres précisent à quel chapitre de la
documentation Linux sont décrites ces commandes.

La commande man fait appel à less pour présenter l’aide page par page. La
variable MANPAGER permet de configurer le comportement de less dans man.
Il est commode de garder dans man les options habituelles de less :

Exemple
xstra> export LESS=’ z 2 –rsiaj3$’

xstra> export MANPAGER=”less $LESS”

53
Répertoires standards :

/ Répertoire racine (ou root) contenant tous les répertoires.


/home Répertoire contenant les répertoires
personnels de tous les utilisateurs autres
que root.
/root Répertoire personnel de l'administrateur système root.

Répertoires système :

/bin Répertoire contenant les commandes et utilitaires


employés par tous les utilisateurs (ls, rm, cp, etc..)
/boot Répertoire contenant des informations permettant
le chargement de Linux.
/dev Répertoire contenant tous les fichiers périphériques
permettant d'accéder aux composants matériels.
/etc Répertoire contenant les commandes et fichiers de
paramétrages nécessaires à l'administration système.
/lib Répertoire contenant les bibliothèques
communes à tous les utilisateurs
/proc Répertoire spécial utilisé par le système et contenant
la liste des processus en cours d'exécution.
/sbin Répertoire contenant les commandes et utilitaires utilisées
seulement par l'administrateur système.

/tmp Répertoire contenant les fichiers temporaires.


/usr Répertoire composé d'un certain nombre de
sous répertoires utilisés par l'ensemble des
utilisateurs.
/var Répertoire spécial utilisé par le système pour
stocker des données souvent modifiées.

GESTION DES UTILISATEURS ET DES GROUPES


Qui est utilisateur ?

54
Le système, dès son installation, avant même la première connexion au système a
créé des users système.
Un utilisateur n'est donc pas uniquement une personne physique, le système a
besoin d'utilisateurs pour sa gestion interne, notamment comme propriétaire des
divers processus.
La commande ps aux | less montre qu'avant toute connexion d'utilisateur humain
(repérée par les lignes login --user), root a lancé init, et la plupart des services,
crond, inetd, lpd, smbd, ... , avant de lancer les connexions utilisateurs dans les
consoles, y compris éventuellement la sienne !
Même si vous êtes le seul utilisateur, il est indispensable de créer des
utilisateurs ne serait−ce que pour des raisons de sécurité. L'utilisateur root ayant
tous les droits, il est recommandé de se connecter avec un autre utilisateur afin
d'éviter d'effectuer de fausses manips qui pourraient avoir de lourdes
conséquences sur la stabilité du système. Lorsque vous avez besoin de faire
de l'administration système, vous avez toujours la possibilité de changer
d'utilisateur et de devenir root à partir de la commande su :

$ su root
$ whoami root
$ exit
$ whoami pdrouot

Chaque utilisateur dispose d'un répertoire personnel sous /home, par


exemple /home/philippe pour l'utilisateur philippe. Outres les fichiers
personnels de l'utilisateur, son compte comprend des fichiers cachés de
configuration du shell ainsi que les préférences de l'interface graphique
X−Window.

Principe de l'ajout des utilisateurs

L'ajout d'un utilisateur consiste à :


Associer un mot de passe à l'utilisateur (ajout d'une entrée dans le
fichier /etc/passwd) ;
Définir à quel groupe appartient l'utilisateur (ajout d'une entrée dans le
fichier /etc/group) ;
Créer le répertoire personnel de l'utilisateur ;
Créer le fichier de configuration personnel du shell ;
Une entrée (c'est à dire une ligne) du fichier /etc/passwd est de la forme :
Nom : mot de passe : numéro d'utilisateur : numéro de
groupe : champs spécial : répertoire personnel :shell de
démarrage
55
Exemple d'entrée du fichier /etc/passwd :

$ cat /etc/passwd | grep philippe


phlippe:x:501:100:Philippe
Drouot:/home/philippe:/bin/bash

Une entrée (c'est à dire une ligne) du fichier /etc/group est de la forme :
Nom de groupe : champs spécial : numéro de groupe : membre1 ,
membre2, etc..

Exemple d'entrée du fichier /etc/group :

$ cat /etc/group | grep 100


users:x:100:

Pour ajouter un utilisateur philippe, vous devez :

 Ajouter l'utilisateur philippe dans le fichier /etc/passwd

Ajouter éventuellement un nouveau groupe dans /etc/group (si vous


souhaitez créer un groupe spécifique pour philippe)

 créer le répertoire personnel du nouvel utilisateur (home directory), copier


les fichiers de configuration du shell et changer les droits du répertoire
philippe afin que l'utilisateur philippe devienne propriétaire de son
répertoire personnel :

$ mkdir /home/philippe
$ cp /etc/skel/* /home/philippe
$ chown philippe /home/philippe
$ chgrp le_groupe_de_philippe /home/philippe

 donner un mot de passe à l'utilisateur philippe par la commande :


$ passwd philippe

Ajout d'utilisateur et de groupe avec les commandes useradd et groupadd


Pour faciliter l'ajout d'utilisateurs et de groupe, il existe des commandes
spécifiques.

Ajout d'un utilisateur avec la commande useradd :

56
Syntaxe : useradd nom−utilisateur −g groupe −d répertoire−personnel
−m

L'option −m permet de recopier les fichiers de configuration du shell. On


peut remplacer le shell courant par un shell spécifique avec l'option −s (par
exemple −s /etc/ftponly).

$ useradd philippe −g users −d /home/philippe −m


$ passwd philippe
Changing password for user philippe
New UNIX password :
Retype new UNIX password :
Passwd : all authentification tokens update successfully

Suppression d'un utilisateur avec la commande userdel :

$ userdel −r philippe
L'option −r permet de supprimer le répertoire personnel de l'utilisateur à
supprimer.

Ajout d'un groupe avec la commande groupadd :


$ groupadd ftpusers

Suppression d'un groupe avec la commande groupdel :


$ groupdel ftpusers

Les principales commandes


useradd, usermod, userdel  gestion des comptes utilisateur 
groupadd, groupmod, gestion des groupes 
groupdel 
pwck, grpck   vérification des fichiers 
passwd   changer le mot de passe d'un utilisateur 
chfn, id, groups, finger  utilitaires divers 

GESTION DES COMPTES

 Créer un compte pour un nouvel utilisateur

Cela signifie lui permettre d'être connu du poste local, s'y loguer, avoir un
accès complet sur son rép. personnel.
Mais aussi dans une configuration réseau, de pouvoir se connecter à son

57
compte par telnet et ftp, et de pouvoir bénéficier de services réseau de
partage distant (sous Linux par NFS et sous Windows 9x par SMB).

 Pour créer l'utilisateur stagex, root passe la commande :


useradd -m stagex

 Ceci crée :
o le répertoire personnel /home/stagex, portant par défaut le nom du
compte
o une nouvelle entrée dans les 2 fichiers fondamentaux /etc/passwd
et /etc/group.

Connaitre les options de useradd (indispensable pour gérer les comptes à


l'aide de
scripts) :

 Pour lui attribuer le mot de passe :


passwd stagex
saisir 2 fois stgx

 Supprimer le compte d'un utilisateur (non connecté), au hasard .. totox.


userdel [-r] totox
L'option -r supprime aussi le rép. personnel et les fichiers de l'utilisateur
La commande supprime toute trace de l'utilisateur dans le fichier de
configuration : /etc/passwd y compris dans les groupes d'utiliseurs.

 Modifier le compte de l'utilisateur toto


usermod [options] totox
Les options sont les mêmes que useradd
usermod -G stagiaire, profs stagex ajoute stagex dans les 2 groupes
stagiaire et profs (qui doivent exister)

Manipulations

Sous l'identité de root

1. Créer quelques utilisateurs stagey et totox


2. Effectuer des vérifications : possibilité immédiate de se loguer sous ces
comptes, création de leur rép. personnel dans /home.
3. Essayer de créer un compte déjà existant.

58
4. Supprimer sans regret le compte de totox. Son rép. personnel a t-il été
supprimé ?

Remarques

 Attention : si root passe la commande passwd il s'apprête à redéfinir son


propre mot de passe !
 Un utilisateur quelconque ne peut pas créer de compte, même s'il a le
privilège de faire partie du groupe root. A tester !
 Par contre, il peut modifier lui-même son mot de passe.
 Voir les diverses options avec useradd -h
 Attention ! Le compte créé permet à l'utilisateur d'accéder au système de
fichier Linux (avec des droits que nous verrons). Pour pouvoir se connecter
au réseau SAMBA, à partir d'une station distante Windows9x, il faut créer
un compte Samba avec l'utilitaire smbpasswd (voir le chapitre serveur
Samba ).

LES GROUPES

Un groupe est, aussi pour Linux, un ensemble d'utilisateurs qui partagent les
mêmes fichers et répertoires. Nous verrons que les fichiers accordent des droits
d'accès réglables à ces groupes.

Chaque utilisateur doit faire partie au moins d'un groupe, son groupe primaire.
Celui-ci est défini au moment de la création du compte, et par défaut, l'utilisateur
appartient à un nouveau groupe créé, portant son nom.

Ainsi, dans /etc/passwd chaque utilisateur possède un groupe par défaut, précisé
par son identifiant gid dans ce fichier.

L'appartenance au groupe primaire n'étant pas exclusive, tout utilisateur peut


faire partie de plusieurs autres groupes, appelés ses groupes secondaires.
Mais le rôle joué par le groupe primaire demeure prépondérant, comme nous le
verrons dans le système des permissions des fichiers.

Pour lister tous les groupes (primaire et secondaires) d'un utilisateur :


groups stagex

Pour créer un nouveau groupe


groupadd stagiaire

59
Supprimer un groupe, au hasard.. encore totox.
groupdel totox
Le groupe est supprimé du fichier /etc/group.

Pour ajouter un utilisateur à un groupe


Le plus simple est d'éditer le fichier /etc/group et d'ajouter une liste
d'utilisateurs (séparés par des virgules) sur la ligne du groupe

Manipulations

Il s'agit de créer un groupe nommé stagiaire dont les membres sont les comptes
stagex.
On donnera ensuite à ce groupe des droits complets sur un répertoire partagé.
Comme root :

1. créer le groupe stagiaire :


groupadd stagiaire
2. ajouter quelques comptes stagex dans ce groupe
3. vérifier le résultat avec la commande groups

Travaux Pratiques

MISE EN PLACE D'UN ESPACE DE TRAVAIL POUR 4 UTILISATEURS

Création des groupes et des utilisateurs

Création de 2 groupes

groupadd group1
groupadd group2
cat /etc/group
...
group1:x:1001:
group2:x:1002:

Création des 4 utilisateurs avec création de leurs répertoires home:

useradd -m u1
useradd -m u2
useradd -m u3
useradd -m u4
cat /etc/passwd

60
...
u1:x:1001:100::/home/u1:/bin/sh
u2:x:1002:100::/home/u2:/bin/sh
u3:x:1003:100::/home/u3:/bin/sh
u4:x:1004:100::/home/u4:/bin/sh
ls -l /home
total 20
...
drwxr-xr-x 2 u1 users 4096 2007-02-01 12:12 u1
drwxr-xr-x 2 u2 users 4096 2007-02-01 12:12 u2
drwxr-xr-x 2 u3 users 4096 2007-02-01 12:12 u3
drwxr-xr-x 2 u4 users 4096 2007-02-01 12:12 u4

Placer des utilisateurs dans leurs groupes

usermod -G group1 u1
usermod -G group1,group2 u2
usermod -G group2 u3
usermod -G group1,group2 u4
cat /etc/group
...
group1:x:1001:u1,u2,u4
group2:x:1002:u2,u3,u4

Visite des coulisses

 Tout ce qui concerne la gestion et l'authentification des utilisateurs est


inscrit dans un seul fichier /etc/passwd
 La gestion des groupes est assurée par /etc/group
 Les mots de passe cryptés sont maintenant placés dans /etc/shadow, par
sécurité lisible seulement par root.

Structure de /etc/passwd

Ce fichier comprend 7 champs, séparés par le symbole :

1. nom de connexion
2. ancienne place du mot de passe crypté
3. numéro d'utilisateur uid, sa valeur est le véritable identifiant pour le
système Linux; l'uid de root est 0, le système attribut conventionnellement
un uid à partir de 500 aux comptes créés.
4. numéro de groupe gid, dans lequel se touve l'utilisateur par défaut; le gid
de root est 0, des groupes d'utilisateurs au delà de 500

61
5. nom complet, il peut être suivi d'une liste de renseignements personnels (cf
chfn)
6. rép. personnel (c'est également le rép. de connexion)
7. shell, interprétateur de commandes (par défaut /bin/bash)

Structure de /etc/group

Ce fichier comprend 4 champs, séparés par le symbole :


1. nom du groupe
2. x pour remplacer un mot de passe non attribué maintenant
3. numéro de groupe, c-à-d  l'identifiant gid
4. la liste des membres du groupe

  Manipulations

Editer ces fichiers (utiliser l'utilitaire mc ou gedit, sélectionner et éditer avec F3)
Examiner les lignes correspondant aux comptes créés : où se trouvent les rép.
Personnels ? Quel est leur groupe par défaut ?

Section Comptes utilisateurs

Sélectionner un compte et examiner sa définition actuelle sous l'interface de


Linuxconf
Comparer avec son entrée dans /etc/passwd

Ajouter un nouveau compte (stagey/stgy) en donnant seulement les noms de login


et nom complet
Puis on est averti que le mot de passe a bien été enregistré dans passwd et
smbpasswd

Pour connaitre le rôle de chage, consulter le manuel et le fichier /etc/shadow


Créer maintenant un autre compte (toto) en précisant le groupe primaire (zig), et
des groupes secondaires (stagiaire). Examiner la syntaxe des 2 lignes de
commandes exécutées ( /usr/sbin/useradd et /usr/bin/chage

Si le rep. de base n'est pas spécifié, par défaut création et attribution de


/home/stagex
On peut tout de suite placer l'utilisateur dans une liste de groupes (sans virgule)

Compléments
62
La structure d'une ligne de /etc/passwd et de /etc/group

login:x:uid:gid:commentaires:home:shell
groupe:x:gid:liste-groupes-secondaires

Options de la commande useradd (pour détails cf man useradd)


Nous avons jusqu'ici utilisé cette commande avec ses options par défaut.
La maitrise de cette commande est indispensable pour écrire des scripts de
génération automatique de comptes.

Syntaxe : useradd [options] nom_login


Exemple : useradd toto -u 1200 -p moi -g 520 -G groupes -s /bin/bash

Options :

-u uid pour fixer l'identifiant uid


-g groupe-  
primaire
-G liste fixe l'appartenance de l'utilisateur à une liste
de groupes secondaires (séparateur, sans
espace)
-s shell par défaut, attribution du shell par défaut bash
-c commentaire  
-d rep. par défaut dans le répertoire /home
personnel
-e date- fixe la date d'expiration du compte (format
expiration MM/JJ/AA)
-m pour créer le répertoire personnel
-k rep-skel recopie le contenu de rep-skel dans le rép.
personnel, par défaut /etc/skel

La recopie du répertoire /etc/skel est très important pour l'administrateur, car il lui
permet de configurer de façon uniforme les sessions de travail des utilisateurs.
C'est ainsi que tous les utilisateurs qui passent en mode graphique KDE hérite du
même bureau.

La commande useradd -D ou éditer /etc/default/useradd

GROUP=100   identifiant du groupe primaire


HOME=/home  racine des rép. personnels
INACTIVE=-1   (nb de jours avant destruction du compte
EXPIRE=   nb de jours avant expiration du mot de passe
SHELL=/bin/bash   shell de connexion attribué au compte
63
SKEL=/etc/skel   fichiers recopiés par défaut dans chaque rép. personnel

La commande passwd

Elle est chargée du cryptage du mot de passe dans /etc/shadow


Syntaxe : passwd [option] nom-login

Options

o --stdin, la commande abandonne son caractère interactif habituel et


examine son entrée standard pour s'en servir comme mot de passe.
Très utile dans un script : echo mot | passwd --stdin (attention tout
caractère est significatif, y compris les " ")
o -d , pour supprimer le mot de passe, l'utilisateur pourra se connecter
sans !
o -l , pour verrouiller le compte et empêcher sa connexion.
o -u , pour déverrouiller.

Connaitre l'uid et le gid de l'utilisateur courant

Commande id
uid=501(stage1) gid=501(stage1) groups=501(stage1), 504(stagiaire)

La commande "passwd -g groupe" modifiera le mot de passe d'un groupe.


La commande "passwd -r -g groupe" supprimera le mot de passe.

LA GESTION DES FICHIERS ET DES SYSTEMES DE


FICHIERS

Sous UNIX, toutes les données sont manipulées à l'image d'un fichier ordinaire.
De ce fait, il existe plusieurs types de fichiers en fonction de leur utilisation.
Les différents types sont :

Les fichiers répertoires dont le contenu fait l'association entre le numéro d'inode
(numéro unique représentant un fichier sur le système de fichiers) et le nom du
fichier ;

Les fichiers ordinaires qui stockent les données et les programmes sans format
particulier mais comme une suite d'octets ;

64
Les fichiers spéciaux de type blocs ou caractères qui constituent une porte
permettant de communiquer avec les périphériques de l'ordinateur (Exemple : le
lecteur de disquettes = /dev/fd0) ;

UNIX en tant que système d'exploitation sécurisé gère des droits d'accès sur
les fichiers. Il existe trois niveaux de sécurité qui correspondent
respectivement aux droits de l'utilisateur, du groupe, et des autres utilisateurs.
À chacun de ces niveaux, il est possible de déterminer les droits
suivants :

La lecture (R ou 4) ; L'écriture (W ou 2) ; L'exécution (X ou 1)

Leur interaction avec les différents fichiers est décrite ci dessous :

Fichiers Répertoires
Autorise la lecture du Permet de lister le
LECTURE
fichier. contenu du répertoire.
Autorise la création et la
suppression des fichiers
ECRITURE Permet la modification du du répertoire.
fichier. ATTENTION : cette
permission est valable
quels que soient les droits
des fichiers.
Autorise l'exécution du Permet de se
EXECUTION
fichier. positionner dans le
répertoire.

Le système de fichiers est une structure logique qui permet de gérer


l'espace disque. En effet, si l'on veut stocker des fichiers (ou
répertoires) sur un disque, il faut préparer une ou plusieurs structures
d'accueil. On retrouve ce procédé sous DOS lorsque vous créez X
partitions sur un disque dur (avec fdisk) ; il faut les formater (avec format)
avant de pouvoir les utiliser.
La différence avec le DOS, se situe dans la hiérarchisation de ces systèmes de
fichiers :

Sous DOS, chaque système de fichiers porte un nom bien précis


(Exemple : A:, C:, D:, …).

65
Sous UNIX, tous les systèmes de fichiers utilisés viennent se
"rattacher" (on dit se monter) sur le système de fichiers principal
(sur lequel on a booté), il y a hiérarchisation. Exemple :

PERMISSIONS D'ACCES AUX FICHIERS

Catégories d'utilisateurs
A un fichier on affecte les droits correspondants à trois catégories d'utilisateurs :
les droits du propriétaire du fichier, les permissions du groupe d'utilisateurs
auquel appartient le propriétaire et celles concédées à tous les autres.

Propriétaire

Le propriétaire d'un fichier est la personne qui le crée. Il est désigné par la lettre u
(owner).
L’utilisateur normal, son propriétaire, bien souvent son créateur, qui n'a pas pour
autant tous les droits sur lui !

Le UID désigne par un identificateur numérique unique le propriétaire d'un fichier.

Groupe

Un groupe d'utilisateur est un ensemble d'utilisateurs privilégiés ayant en général


des permissions moindre (parfois des "permissions" particulières) que le
propriétaire d'un fichier mais plus grandes que la catégorie qui suit. Cette catégorie
est désignée par la lettre g (group).

groupe, ensemble d'utilisateurs ayant parfois des "permissions"


particulières.

Le GID désigne par un identificateur numérique unique le groupe auquel


appartient le propriétaire d'un fichier.

Autres

66
Cette catégorie regroupe tous les utilisateurs qui ne sont ni le propriétaire d'un
fichier ni faisant partir du même groupe que le propriétaire. On les désignent par la
lettre a (other).

Tout fichier du système appartient à la fois à un utilisateur (son "propriétaire")


et à un groupe.
Ainsi, pour chaque fichier le monde de ses utilisateurs potentiels est scindé en 3
catégories, nommées :

Attention, l'utilisateur propriétaire et le groupe propriétaire du fichier


peuvent être indépendants :

 le groupe propriétaire n'est pas forcément le groupe primaire de l'utilisateur


propriétaire,
 et même, le propriétaire n'est pas forcément membre du groupe !

Mais (heureusement) une règle générale simple s'applique à la création de


tout nouveau fichier (ou rép)

 son propriétaire est l'utilisateur (humain ou système) qui l'a créé


 son groupe est le groupe primaire de ce même utilisateur

DROITS D'ACCES DES UTILISATEURS AUX FICHIERS

Catégories d'utilisateurs
A un fichier on affecte les droits correspondants à trois catégories d'utilisateurs :
les droits du propriétaire du fichier, les permissions du groupe d'utilisateurs auquel
appartient le propriétaire et celles concédées à tous les autres.

Propriétaire

Le propriétaire d'un fichier est la personne qui le crée. Il est désigné par la lettre u
(owner).
Le UID désigne par un identificateur numérique unique le propriétaire d'un fichier.

Groupe

Un groupe d'utilisateur est un ensemble d'utilisateurs privilégiés ayant en général


des permissions moindre que le propriétaire d'un fichier mais plus grandes que la
catégorie qui suit. Cette catégorie est désignée par la lettre g (group).
67
Le GID désigne par un identificateur numérique unique le groupe auquel
appartient le propriétaire d'un fichier.

Autres

Cette catégorie regroupe tous les utilisateurs qui ne sont ni le propriétaire d'un
fichier ni faisant partir du même groupe que le propriétaire. On les désignent par la
lettre a (other).

Protection des fichiers


Comme tout système multi-utilisateur, Linux possède des mécanismes permettant
au propriétaire d’un fichier d’en protéger le contenu. Le propriétaire est l’utilisateur
ayant créé le fichier. Pour permettre le partage de fichiers et faciliter le travail en
équipe, Linux définit la notion de groupe d’utilisateurs, et tout utilisateur appartient à
un groupe au moins. Les droits d’accès (en anglais permissions) à un fichier sont
définis par son propriétaire.

DROIT D’ACCÈS AUX FICHIERS

À chaque fichier est associé un ensemble d’indicateurs précisant les droits d’accès
au fichier.
Pour chaque fichier il existe trois types d’utilisateurs :
 le propriétaire du fichier,
 les membres du groupe propriétaire du fichier,
 les autres utilisateurs du système.

Pour chaque fichier et par type d’utilisateur il existe trois modes principaux :
autorisation d’écriture (w)
autorisation de lecture (r)
autorisation d’exécution (x)

En plus de ces neuf bits (rwx rwx rwx), Unix/Linux définit trois autres bits de
permission : SUID, SGID, t que nous présenterons plus loin.
Sous Linux il existe différents types de fichiers :

 fichier ordinaire ( )
 fichier répertoire (d)
 fichier spécial : périphérique accédé en mode caractère (c)
 fichier spécial : périphérique accédé en mode bloc (b)
68
 tube nommé (named pipe) (p)
 lien symbolique (l)
 socket (s)

Ainsi, à chaque fichier Linux sont associés 10 attributs (1 pour désigner le type, et
9 attributs de protection, 3 pour le propriétaire, 3 pour le groupe et 3 pour les autres
utilisateurs). L’ensemble des renseignements sur un fichier est obtenu en utilisant la
commande ls l.

Exemple
xstra> ls l /etc/passwd
rw r r 1 root bin 2055 Jul 28 18:03 /etc/passwd

permission des autres


permission du groupe
permission du propriétaire
type du fichier

La chaîne rw r r représente les protections du fichier /etc/passwd. Le premier


caractère représente le type de fichier (ordinaire dans ce cas).

Les trois caractères suivants indiquent les droits d’accès du propriétaire (rw ), les trois
suivants sont ceux du groupe (r ) et les trois derniers (r ) sont les droits d’accès
des autres utilisateurs.

Le champ suivant représente le nombre de liens sur ce fichier (un dans l’exemple). Les
deux champs suivants indiquent l’utilisateur (root) et le groupe (bin) propriétaires du
fichier. Ensuite apparaît la taille du fichier en octets, suivie de la date et de l’heure de la
dernière modification du fichier. A la fin apparaît le nom du fichier.

Voici deux exemples de protection des fichiers :


rw r Fichier spécial caractère : lecture et écriture pour le proprié- taire et pour le
groupe, et lecture pour les autres (par exemple les terminaux).

rwx r x r Fichier ordinaire : lecture, écriture et exécution permises pour le


propriétaire, lecture et exécution pour le groupe et seule- ment lecture pour les autres. Il
est donc impossible aux membres du groupe et aux autres utilisateurs d’écrire dans ce
fichier.

69
MODIFICATION DES DROITS D’ACCÈS AUX FICHIERS
Modification des droits d’accès
La protection d’un fichier ne peut être modifiée que par le propriétaire à l’aide de la
commande chmod (CHange MODe). Il existe deux modes d’utilisation de cette
commande. La première (la plus ancienne) utilise la description des protections
par un nombre octal.

Exemple
rwx rw r x est représenté par le nombre octal 765. En effet, une lettre équi-
vaut à 1, un tiret à 0.
On a donc rwx rw r x = 111 110 101 = 765

Exemple
Cet exemple va modifier la protection du fichier toto de la manière suivante :
r x rw rwx autorisant un accès lecture et exécution au propriétaire, lecture et
écriture au groupe et un accès sans restriction aux autres (cas très rare).

xstra> chmod 567 toto


xstra> ls l toto
r x rw rwx 1 xstra staff 55 Jul 20 17:01
toto
xstra>

Le deuxième mode d’utilisation de chmod, le mode symbolique, permet une


description absolue ou relative des droits d’accès, comme suit :
chmod [who]op[permission] fichier

who est une combinaison de lettre u (user=propriétaire), g (groupe), o


(other=autre) ou a (all=tous) pour ugo,

op + permet d’ajouter un droit d’accès, - de supprimer un droit


d’accès et = d’affecter un droit de manière absolue (tous les
autres bits sont remis à zéro),

permission r (read=lecture), w (write=écriture), x (exécution).

Exemples
chmod u w file supprime le droit d’écriture au propriétaire.
chmod g+r file ajoute le droit de lecture pour le groupe.
chmod ug=x file accès uniquement en exécution pour le propriétaire et le
groupe, pas de modification pour les autres.

70
Droit d’accès à la création du fichier
La protection d’un fichier, ainsi que le nom du propriétaire (le vôtre) et le nom du groupe
auquel vous appartenez, sont établis à sa création et ne peuvent être modifiés que par son
propriétaire.
La commande umask permet de définir un masque de protection des fichiers (et
répertoires) lors de leur création. Cette commande se trouve en général dans le fichier
.bashrc, mais elle peut être exécutée à tout moment. Le masque est exprimé en base 8.

Exemples
xstra> umask 022

La valeur 022 est soustraite de la permission permanente (111 111 111) :


111 111 111 <= permission permanente
000 010 010 <= on enlève les bits dont on ne veut pas
111 101 101 => 755
umask 022 permet de créer des fichiers répertoires dont la protection est
rwx r x r x. C’est souvent l’option par défaut.

Attention
Pour les fichiers ordinaires, umask 022 donnera une protection de type rw
r r , car la possibilité d’exécution n’est pas autorisée sur les
fichiers ordinaires.

Voici donc ce qui se passe après avoir lancé umask 022 :


xstra> touch f1
xstra> ls l f1
rw r r 1 xstra staff 40 jan 15 16:04 f1
xstra>

La forme symbolique de la commande umask est beaucoup plus agréable à l’utili-


sation que la forme octale. Acceptée par le bash et le Z-shell (mais pas par le TC-
shell), elle est totalement cohérente avec la forme symbolique de la commande chmod,
et devrait être préférée à la forme octale, considérée comme désuète.

Exemple
xstra> umask u=rwx,g=rx,o=rx
xstra> umask
0022
xstra> umask –S
u rwx,g rx,o rx

71
DROIT D’ACCÈS AUX RÉPERTOIRES
Dans le cas des répertoires, l’interprétation des droits est légèrement différente de
celle concernant les fichiers. Les informations concernant un répertoire sont obte-
nues par la commande ls dl rept.

Exemple
xstra> ls dl bin
drwx r x r x 3 xstra staff 1024 Jul 28 18:04 bin
xstra>

L’interprétation des protections pour les répertoires est la suivante :

r autorise la lecture du contenu du répertoire comme dans le cas des fichiers;


permet donc de voir la liste des fichiers qui sont dans le répertoire.

x autorise l’accès au répertoire (à l’aide de la commande cd).

w autorise la création, la suppression et le changement du nom d’un élément du


répertoire. Cette permission est indépendante de l’accès aux fichiers dans le
répertoire.

Exemples
Soit un fichier f1 dans le répertoire xstra1.
1) Le répertoire xstra1 appartenant à l’utilisateur xstra1 a les protections
suivantes :
drwx

Le fichier f1 de xstra1 a les protections suivantes :


rwx

Seul l’utilisateur xstra1 pourra modifier et supprimer son fichier f1.

2) Le répertoire xstra1 appartenant à l’utilisateur xstra1 a les protections


suivantes :
dr x

Le fichier f1 de xstra1 a les protections suivantes :


rwx

Seul l’utilisateur xstra1 pourra modifier son fichier f1 mais il ne pourra pas
le supprimer. En effet le propriétaire du répertoire xstra1 (l’utilisateur xstra1)
n’a pas l’autorisation w (autorisation de création, suppression, modification du
nom d’un élément du répertoire).

72
La permission de supprimer et le bit t
La possibilité de suppression d’un fichier n’est donc pas fixée dans les permissions de ce fichier, mais dans les
permissions du répertoire qui le contient. Ce n’est donc pas une permission fixée fichier par fichier. Cela pose
problème, en particulier dans le répertoire /tmp : tout utilisateur doit pouvoir créer des fichiers dans /tmp, qui a
donc les permissions rwx pour other. Chacun peut donc lire et écrire dans /tmp, et donc y créer des fichiers.
Mais chacun pourrait aussi supprimer tout fichier dans /tmp, y compris des fichiers créés par d’autres
utilisateurs ! D’où l’utilité du bit t sur un répertoire : si ce bit est positionné, un utilisateur qui peut écrire dans
le répertoire peut y créer des fichiers, mais ne peut supprimer un fichier que s’il en est propriétaire. Le bit t
apparaît à la place du bit x de other dans la commande ls l :

xstra> ls –ld /tmp


drwxrwxrwt 11 root root 3072 May 11 15:09 /tmp

MODIFICATION DU PROPRIÉTAIRE ET DU GROUPE

La commande chown permet de changer le propriétaire d’un fichier. Pour des raisons de sécurité, seul
l’administrateur peut modifier le propriétaire d’un fichier ou d’un répertoire. Cet utilisateur privilégié, appelé
root, peut accéder à tous les fichiers et répertoires sans aucune restriction et peut en modifier tous les attributs
(nom, propriétaire, groupe propriétaire, permissions, dates). Il existe toujours dans tout système Unix/Linux.

La commande chgrp permet le changement de groupe pour les fichiers ou réper- toires cités, à condition que
l’utilisateur fasse partie du nouveau groupe et soit propriétaire de ces fichiers ou répertoires.

Exemple
xstra> chgrp info f1
§ possible si j’appartiens au groupe info
xstra> chown soline f1
chown: f1: Operation not permitted
§ possible seulement pour root

Le fichier f1 appartiendra à soline et au groupe info.


Une commande équivalente (utilisable seulement par root) serait :
root> chown soline.info f1

APPARTENANCE À PLUSIEURS GROUPES

Lors de l’entrée en session, un utilisateur appartient à son groupe de rattachement principal : celui défini dans le
fichier /etc/passwd. Cet utilisateur peut toutefois être membre d’autres groupes, tel que cela est défini dans le
fichier /etc/group. BSD et System V diffèrent sur les points suivants :

 Dans les versions d’Unix de souche BSD :


Les permissions de groupe d’un fichier (ou d’un répertoire) sont applicables à tout utilisateur membre du
groupe propriétaire du fichier. Tout fichier nouvelle- ment créé a pour groupe propriétaire le groupe auquel
appartient le répertoire dans lequel il est créé. (Un utilisateur peut donc créer un fichier appartenant à un groupe
dont il n’est pas membre.)

 Dans les versions d’Unix de souche System V :


Les permissions de groupe d’un fichier (ou d’un répertoire) ne sont applicables à un utilisateur que si son groupe
effectif est le groupe propriétaire du fichier. Un utilisateur peut changer de groupe effectif à tout moment en
effectuant la commande newgrp nouveau groupe, à condition d’être membre de nouveau groupe. Tout

73
fichier nouvellement créé a pour groupe propriétaire le groupe effectif de son créateur.

Linux, comme d’autres versions d’Unix, réalise une synthèse entre ces deux comportements :
 Les permissions de groupe d’un fichier (ou d’un répertoire) sont applicables à tout utilisateur membre du
groupe propriétaire du fichier, comme en BSD.

 Tout fichier nouvellement créé a pour groupe propriétaire le groupe effectif de l’utlisateur qui le crée si le
répertoire qui le contient n’est pas SGID. C’est le comportement System V.

 Tout fichier nouvellement créé a pour groupe propriétaire le groupe auquel appartient le répertoire dans
lequel il est créé si ce répertoire est SGID. C’est le comportement BSD.

Le choix entre le comportement System V et BSD peut donc être fixé répertoire par répertoire par positionnement
du bit SGID sur le répertoire. Ceci est réalisé par les commandes :

chmod g+s repertoire § met le bit SGID


chmod g s repertoire § supprime le bit SGID

Si un répertoire est SGID, tout sous-répertoire créé ultérieurement héritera du bit SGID, et donc du comportement
BSD. Ce comportement est très adapté au travail en groupe :

Exemple
L’utilisateur xstra fait partie du groupe staff et également du groupe reseau. Son groupe principal est staff.
Voyons ce qui se passe dans un répertoire non

SGID : xstra> umask 002


xstra> ls ld projet1
drwx rwx r x 2 xstra staff 4096 jan 22 10:0 projet1

§ le répertoire projet1 n’est pas SGID


xstra> cd projet1
xstra> ls –l bonjour
rwx r 1 pierre reseau 25 fev 10 10:25 bonjour
xstra> cat bonjour § xstra fait partie du groupe reseau Hello § il peut donc lire le
contenu Comment vas tu? § du fichier bonjour
xstra> touch prog2.c
xstra> ls –l prog2.c
rwx rwx r 1 xstra staff 0 fev 10 15:02 prog2.c
§ Le fichier prog2.c appartient au groupe staff
§ et non pas au groupe réseau.

Les autres membres du groupe réseau n’ont pas la permission de modifier le fichier prog2.c : nous ne sommes pas
dans une logique de travail en groupe pour le groupe réseau. Voyons maintenant ce qui se passe dans un répertoire
SGID :
xstra> umask u rwx,g rwx,o rx xstra> ls ld projet2
drwx rws r x 3 xstra reseau 4096 jan 22 10:0 projet2
§ le répertoire projet2 est SGID
xstra> cd projet2
xstra> touch prog2.c
xstra> ls –l prog2.c
rwx rwx r 1 xstra reseau 0 fev 10 15:02 prog2.c
§ Le fichier prog2.c appartient au groupe reseau.

Dans ce dernier cas, tous les membres du groupe réseau pourront modifier tout fichier créé dans ce répertoire. Le
travail en groupe est très simplifié. Une discussion beaucoup plus détaillée et très intéressante sur cette logique est
disponible (en anglais) dans l’aide en ligne au format HTML, par exemple pour la distibution Red Hat dans :
Red Hat Linux Reference Guide System Related Reference System Administration
74
EXERCICES
Exercice

En utilisant les commandes mkdir, echo et cat, créez dans un nouveau répertoire de nom "reptest" le
fichier "bienvenue" contenant la ligne de commandes :
echo Bienvenue dans le monde Linux
Exécutez ce fichier.

Exercice

En utilisant les commandes mkdir, echo, cp, chmod, cat, créez un fichier que vous pouvez lire, modifier et
supprimer.

Exercice

En utilisant les commandes mkdir, echo, cp, chmod, cat, créez un fichier que vous pouvez lire et supprimer
mais que vous ne pouvez modifier.

Exercice

En utilisant les commandes mkdir, echo, cp, chmod, cat, créez un fichier que vous pouvez lire mais que
vous ne pouvez ni modifier, ni supprimer.

Exercice

Dans quel cas les permissions d’un fichier à sa création sont-elles différentes des permissions fixées par umask ?

Exercice

Si vous pouvez travailler avec un collègue appartenant au même groupe que vous, modifiez les permissions du
fichier créé à l’exercice "Bienvenue" ci-dessus de telle façon que votre collègue puisse le lire et l’exécuter, mais
ne puisse pas le modifier ni le supprimer.
Pouvez-vous modifier les permissions de ce fichier de telle sorte que votre collègue puisse le lire, le modifier et
l’exécuter alors que vous-même ne pouvez pas le modifier ?

Exercice

Comment est attribuée la permission d’effacer un fichier ? Créez un fichier que votre collègue peut modifier mais
pas supprimer et un autre qu’il peut supprimer mais pas modifier. Est-il logique de pouvoir attribuer de tels
droits ? Quelles sont les consé- quences pratiques de cette expérience ?

GENERALITES

Linux permet de spécifier les droits d'action sur un fichier, que peuvent exercer les utilisateurs des 3 catégories
précédentes, ou plutôt les permissions que leurs accordent les fichiers et les répertoires.
Linux a repris les 3 protections d'UNIX sur les fichiers et les répertoires. Leur notation symbolique est :

1. r, lecture
2. w, écriture
3. x, exécution

75
De façon générale, ces permissions sont consultables complètement par la commande : ls -l
Rappel : ll est un alias plus court, pour la commande ls -l

Par exemple :
[stagex@p0x  stagex] ll *.html
-rw-r--r--  1 stagex    stagex   1200  oct 19 12 : 39     amoi.html

Description globale

On trouve de gauche à droite


le 1er caractère indique la nature du fichier

"-" fichier normal, "d" un fichier répertoire, "l" un lien.

Le système de droits est spécifié symboliquement par les 9 attributs suivants, correspondants aux 3 catégories
d'utilisateurs du fichier.
  ...|...|...
  u   g   o

La section u fixe les droits accordés au propriétaire du fichier.


La section g fixe les droits accordés aux utilisateurs faisant partie du groupe auquel appartient le fichier.
La section o fixe les droits des autres utilisateurs.
 nombre de liens sur le fichier
1 signifie que le fichier n'a aucun lien qui pointe vers lui, 2 (ou plus) signifiant qu'il existe un lien (ou plus) vers
lui.
 le nom du propriétaire du fichier
 le nom du groupe propriétaire
 la date de dernière modification
 le nom complet du fichier
Modèle concentrique des droits d'accès

Le schéma ci-haut montre qu'un ensemble de propriétaires forme un groupe, qu'un ensemble de groupes forme la
catégorie "autres" (qui sont tous ceux qui prétendent à accéder aux données).
L'accès à un sous ensemble concentrique suppose a priori d'obtenir des droits supplémentaires.

Identification des droits


Identification globale

A chaque catégorie d'utilisateur on associe un triplet de droits : lecture, écriture et exécution. Au total 9 droits
(3*3) sont affectés à chaque fichier.
Lorsqu'un droit est alloué, on voit la lettre correspondante (r, w ou x). Si le droit est refusé, on voit un tiret (-).
Dans l'exemple ci-contre, le propriétaire dispose des droits de lecture et d'écriture. Tandis que le
groupe ainsi que les autres ne disposent que du droit de lecture.
Combinaisons des droits
76
A chacune des 3 catégories d'utilisateur, on associe d'une des 8 combinaisons différentes possibles pour
l'allocation des droits que le tableau ci-dessous récapitule.

Triple Droits correspondants


t
--- aucun
--x exécution
-w- écriture
-wx écriture et exécution
r-- lecture
r-x lecture et exécution
rw- lecture et écriture
rwx lecture, écriture et exécution

Or les droits globaux d'un fichier sont identifiés par l'association de 3 triplets de droits. Ce qui nous fait 83=512
combinaisons différentes. Le tableau suivant regroupe quelques unes de ces combinaisons possibles.

Droits globaux Description


rwxr-xr-x Le propriétaire a tous les droits, et le groupe ainsi que les autres n'ont pas accès
en écriture.
rwxr--r-- Le propriétaire a tous les droits, et le groupe ainsi que les autres n'ont accès qu'en
lecture.
rwxr-x--- Le propriétaire a tous les droits, le groupe possède les droits de lecture et
d'exécution alors que les autres n'ont aucun droit.
rwx------ Le propriétaire a tous les droits mais le groupe et les autres aucun.
rw-r--r-- Le propriétaire possède les droits de lecture, écriture mais pas exécution. Et le
groupe et les autres ont le droit en lecture.
rw-rw---- Le propriétaire et le groupe ont le droit en lecture et écriture mais les autres n'ont
aucun droit.

Permissions des fichiers normaux

Pour chaque fichier, les utilisateurs sont ainsi séparés en 3 catégories, le propriétaire, les membres du groupe et tous
les autres.
Les permissions accordées par le fichier à ces catégories sont complètement indépendantes mais leur signification
est la même.
Vis à vis de chacune de ces 3 catégories, on trouve dans l'ordre :

 le droit de lecture, afficher son contenu    --> "r" si permis , "-" si refusé
 le droit d’écriture, modifier son contenu     --> "w" si permis , "-" si refusé
 le droit d’exécution, pour  un fichier script ou binaire --> "x" si permis , "-" si refusé

Exemples :

 Le fichier de démarrage  /etc/rc.d/rc.sysinit possède les droits rwx r-x r-x


Tous les utilisateurs ont donc le droit de lire et d'exécuter ce fichier (ce qui est à éviter); seul root peut le
modifier
 La table de montage /etc/fstab : rw-r--r-- peut être lue par tous, modifiée uniquement par root

Afficher toutes les infos sur un fichier

La commande stat permet d'obtenir une information plus poussée sur un fichier.

77
Exemple : stat /etc/passwd

Permissions des répertoires

Pour les fichiers de type répertoire, la signification des attributs est différente de celle d'un fichier normal.
Mais elle est toujours identique pour les 3 catégories d'utilisateurs du répertoire.
La présence d'un tiret "-" signifie toujours l'absence complète de droits

 r : lire le contenu, la liste des fichiers (avec ls ou dir)


 w : modifier le contenu : droits de créer et de supprimer des fichiers dans le répertoire (avec cp, mv, rm)
 x : permet d'accéder aux fichiers du répertoire et de s'y déplacer (avec cd).Si on attribue w, il faut attribuer aussi
x sur le répertoire.
Exemples :

Passer les commandes cd / puis ls -l, pour lister les répertoires situés à la racine.

 A qui appartienent-ils ? Un user quelconque peut-il y créer des sous-rép. ?


 Commenter les 2 cas particuliers /root et /tmp
Attention !
On voit que le droit w est très étendu, et même dangereux quand il est accordé à un groupe,
car un membre du groupe peut supprimer des fichiers dont il n'est pas propriétaire et sur
lesquels il n'a même pas de droit d'écriture !
Remarque
Le droit x sur un répertoire est un préalable indispensable pour qu'un utilisateur (de la catégorie
correspondante au positionnement du x), puisse exercer d'éventuels droits sur les fichiers contenus
dans le répertoire.

Changement des droits (chmod)


Il est offert au propriétaire d'un fichier (et seulement à lui seul) de modifier les droits du fichier. C'est-
à-dire qu'il peut supprimer des droits ou bien en rajouter de nouveaux à chacune des trois catégories
d'utilisateur.
Pour cela, on utilise la commande chmod (change mode) selon la syntaxe suivante :
chmod droits fichier.
On peut utiliser cette commande de deux façons différentes pour les mêmes résultats. On choisit soit la notation
symbolique soit la notation numérique.

Notation symbolique

Pour affecter à chaque catégorie les droits voulus, on peut utiliser une notation symbolique selon la syntaxe :
chmod catégorie+opération+liste-des-droits fichier
Où les termes catégorie, opération et liste des droits doivent êtres respectivement remplacés par leur notation
décrite dans les tableaux suivants.

Catégori Description
e
u propriétaire
g groupe
a autres

Opératio Description
n

78
+ ajouter
- retirer
= définir

Droit Description
r lecture
w écriture
x exécution

Comme le montre le tableau ci-dessous, la commande chmod lorsqu'elle est utilisée en notation
symbolique ne permet de modifier les droits que pour une catégorie d'utilisateurs à la fois.
On peut retirer, ajouter ou définir un ou plusieurs droits en même temps.

Exemple Description
chmod g=rwx Alloue au groupe tous les droits.
temps.txt
chmod g-w temps.txt Retire au groupe le droit d'écriture.
chmod a-rwx temps.txt Retire aux autres tous les droits.
chmod u=rw temps.txt Alloue au propriétaire les droits en lecture et en écriture.
chmod a+r temps.txt Rajoute aux autres le droit en lecture.

Changement des permissions : chmod, chown et chgrp


Les permissions et les bits de permissions : l'inode de chaque fichier contient un champ dont les bits définissent
qui peut faire quoi avec ce fichier :
– le bit R, Read : s'il est armé, la lecture est autorisée, désarmé, il interdit de lire le fichier.
– le bit W, Write : il contrôle de la même manière l'écriture sur le fichier et la possibilité de le
supprimer.
– le bit X, exécute : pour un fichier, il contrôle la possibilité de l'exécuter (si c'est un exécutable ou non). Pour
un répertoire, il permet ou il interdit l'accès à ce répertoire.

Certaines combinaisons n'ont pas de sens : un fichier avec w armé et r, et x désarmés ne peut être que modifié
ou effacé, mais pas lu ni exécuté, ce qui est utile ! De même x armé et r désarmé vous donnent un fichier que
vous pouvez certes exécuter après l'avoir chargé, mais vous ne pouvez pas le charger en lecture, car il n'est pas
lisible...
En fait chaque fichier possède trois bits r, trois w et trois x, ce qui fait neuf en tout. Le premier trio rwx
définit les permissions pour le propriétaire du fichier (c'est à dire pour toute tâche dont l'UID correspond à
l'UID du fichier), le second pour tous les utilisateurs membres du groupe auquel appartient ce fichier, et
enfin le troisième pour tous les autres :

exemple : ls l permet de voir ces bits

Vous savez déclarer les droits des utilisateurs par défaut en utilisant la commande interne umask, mais il faut
encore pouvoir modifier les bits de permissions à votre convenance :
chmod, CHange MODe, cette commande relativement complexe à maîtriser modifie les permissions d’accès de
chacun des fichiers indiqués, en suivant l’indication de mode, qui peut être une représentation symbolique du
changement à effectuer, ou un nombre octal représentant le motif binaire des nouvelles autorisations :

79
exemple : chmod permissions fichiers
chmod u+rw,g+rw,orw titi.txt change les permissions du fichier en mode symbolique
chmod 650 titi.txt change les permissions du fichier titi.txt en mode octal

La manière la plus courante de représenter des permissions est le mode chiffré en octal : 4, 2, 1
La valeur octale est la représentation numérique ou chiffrée des permissions de la forme symbolique (r, w, x).

Plutôt que d'utiliser le mode des permissions sous la représentation de nombres octaux (421), nous allons plutôt
nous intéresser à la représentation symbolique. La représentation symbolique a la forme suivante [ugo]+/[rwx]
:
u, User, il s'agit des permissions du propriétaire (400, 200, 100)
g, Group, il s'agit des permissions des utilisateurs du groupe auquel appartient le fichier (40, 20, 10)
o, Other, celles des autres utilisateurs (4, 2, 1).

+, Plus, le signe positif ajoute la permission


-, Moins, le signe négatif enlève le permission
=, Egal , le signe égal fixe une permission

r, w, x, Read, Write, exécute la combinaison de permissions concernées :


exemple : chmod u+rwx donne le droit de lire, écrire et exécuter le fichier titi.txt à son propriétaire
chmod ug+w autorise le propriétaire ainsi que les utilisateurs du groupe à modifier le fichier chmod gorwx
toto interdit tout accès au fichier à tout le monde sauf le propriétaire (et root !)

Vous pouvez également utiliser la lettre a, qui est un raccourcis, pour ugo :
exemple : chmod a+r permet à tout le monde de lire le fichier.

Méthode octale

chmod XXX fichier, où XXX = Utilisateur | Groupe | Autres (X représente un entier compris entre 1 et 7).
Valeur du chiffre X :
0 : aucun droit en lecture, écriture, exécution;
1 : droit d'exécution;
2 : droit d'écriture;
4 : droit de lecture.
On peut cumuler différents droits : X = 7 (soit 1+2+4) signifie donc que l'on donne tous les droits sur le
fichier.
en résumé X = Lecture (1) + Ecriture (2) + Execution (4)
Le 1er chiffre X spécifie les droits pour le propriétaire du fichier.
Le 2ème chiffre X spécifie les droits pour le groupe propriétaire du fichier.
Le 3ème chiffre X spécifie les droits pour tous les autres utilisateurs sur le fichier.

Ainsi, chmod 777 fichier donne tous les droits à tout le monde.

Exemple:
chmod -c 644 /home/utilisateur/texte.txt : modifie les droits en rw-r --r-- pour le fichier
texte.txt c'est-à-dire que seul le propriétaire peut écrire et les autres seulement lire;

Méthode numérique

80
L'avantage de la notation numérique sur la précédente est de permettre sur un fichier la définition absolue des
droits de toutes les catégories en même temps selon la syntaxe :

chmod serie-de-3-chiffres fichier


Ainsi on remplace chacun des triplets par un nombre compris entre 0 et 7. Ce qui nous fait un nombre à trois
chiffres en guise de notation numérique.
Le tableau ci-après permet de faire la convertion entre les différents triplets possibles et leur notation octale
(nombre en base 8).

Triple Nombre binaire Nombre octal


t
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

L'emploi de cette numérotion suppose de connaître ou de savoir retrouver aisément le nombre octal associé à chaque
triplet. Ce qui est assez simple, puisque cette numérotation est la convertion en octal de la représentation binaire du
triplet. Considérez la présence d'un droit comme un booléen valant 1 et son absence comme 0, vous obtenez alors un
nombre binaire qu'il est aisé de convertir en octal (ce qui revient à du décimal car on ne passe pas aux dizaines dans
la base 8).

Exemple Droits globaux associés


chmod 640 temps.txt rw-r-----
chmod 700 temps.txt rwx------
chmod 661 temps.txt rw-rw-r--
chmod 761 temps.txt rwxrw-r--
chmod 610 temps.txt rw-r-----

Remarques importantes
Exécutable
Un programme ne peut être exécuté que si le fichier exécutable correspondant possède le droit d'exécution dans
la catégorie à laquelle appartient l'utilisateur.
Répertoire
On ne peut accéder à un fichier que si les répertoires successifs constitutifs du chemin absolu de ce fichier
possèdent le droit en exécution.
Pour pouvoir lister les fichiers d'un répertoire, ce dernier doit être accessible en lecture.
Fichier
Le droit en exécution n'a aucune incidence sur un fichier non exécutable.
Par contre, un script (c'est-à-dire un fichier texte contenant des commandes du Shell) doit avoir les droits en
lecture et en exécution pour pouvoir être interprété et exécuté par le Shell.
chown

La commande chown permet de changer le propriétaire d'un fichier ou répertoire. Seul le propriétaire du
fichier (ou root) peut faire cette manipulation.
Exemple:
chown utilisateur2 /home/utilisateur/doc.txt
'utilisateur2' devient propriétaire du fichier doc.txt;

man chown : pour avoir les options de chown.


81
TP avec chmod, chown et chgrp
 Changement de propriétaire des répertoires
chown u1:group1 /home/u1
chown u2:group1 /home/u2
chown u3:group2 /home/u3
chown u4:group2 /home/u4
 Création des répertoires communs
mkdir /home/group1
mkdir /home/group2
 Mise en place des permissions pour permettre aux utilisateurs d'écrire dans le répertoire de leur groupe
chgrp group1 /home/group1
chgrp group2 /home/group2
 Mise en place de la permission pour protéger de l'effacement tout en autorisant l'écriture:
A ce niveau du cours, on ne sait pas résoudre la dernière problématique.
Soit on fait confiance aux utilisateurs,
soit on passe par root pour ajouter les fichiers et on ne donne pas la permission «w».
Cas le plus permissif:
chmod g=rwx /home/group1
ou
chmod 770 /home/group1
Cas le moins permissif:
chmod g=700 /home/group1

Masque de protection des fichiers (umask)


Le masque de protection de fichier permet de définir les droits par défaut de tout fichier créé.
Rappelons les règles simples de propriété qui s'appliquent à la création d'un fichier ou d'un répertoire :

 son propriétaire est l'utilisateur qui l'a créé


 son groupe est le groupe primaire de ce même utilisateur

Mais quelles sont les permissions attribuées par défaut à l'utilisateur propriétaire, au groupe propriétaire et à tous
les autres ?
Les permissions maximales accordées par un fichier et un répertoire sont 666 (-rw-rw-rw-) et 777 (-rwxrwxrwx).
On peut restreindre ces permissions lors de sa création. C'est le rôle de la commande umask de fixer les
permissions masquées, autrement dit les0 droits non accordés aux fichiers et répertoires lors de leur création.
Exemple1 : calcul de permissions effectives, affectées lors de la création d'un répertoire, par un utilisateur dont le
masque de protection est 027

777 = 111 111 111 permissions maxi = rwx rwx rwx


- 027 = 000 010 111 masque de protection
= 750 = 111 101 000 permissions effectives = rwx r-x ---

Exemple 2: si le masque de protection vaut 037 alors 740 (=777-037) seront les droits alloués à tout nouveau
fichier.
La commande permettant de définir un nouveau masque de protection est umask.
Syntaxe : umask droits
Exemple : umask 037
  777 = rwx rwx rwx = 111 111 111
- 037 = --- -wx rwx = 000 011 111
= 740 = rwx r-- --- = 111 100 000
82
D'après cet exemple, tout nouveau fichier aura les droits 740 (rwxr-----) car le masque de protection vaudra
037 (----wxrwx).
Pour connaître la valeur du masque de protection, tapez umask sans attribut.

La commande umask
o umask affiche le masque de l'utilisateur actif
Quelles sont les valeurs des masques par défaut de root et des autres utilisateurs ?
o umask -S affiche les permissions correspondantes au masque, sous forme symbolique.
o umask masque fixe les permissions ultérieures de création des fichiers de l'utilisateur actif,
conformément à masque, en notation octale.
Attention ! le changement ne s'applique qu'à la présente session.
Remarque
Lors de la création d'un fichier, même si le masque de protection spécifie le droit en exécution, ce dernier ne
sera pas affecté au fichier nouvellement créé mais seulement à un répertoire. Donc, si vous créez un fichier
exécutable ou un script il faudra lui rajouter manuellement le droit en exécution.

Compléments indispensables
Notation octale des permissions

Il existe une autre facon d'indiquer les permissions de chaque catégorie, plus simple en utilisant la numération
octale

Voici la table de correspondance entre les 8 chiffres en numérotation octale (base 8) et les 8 valeurs de droits
fichiers.
Par convention la présence d'un droit est noté 1, l'absence 0.
          Binaire ----- Droit ----- Octal
             000 -------- (---) --------- 0
             001 -------- (--x) -------- 1
             010 -------- (-w-) -------- 2
             011 -------- (-wx) ------- 3
             100 -------- (r--) -------- 4
             101 -------- (r-x) ------- 5
             110 -------- (rw-) ------- 6
             111 -------- (rwx) ------ 7
Synthèse : notation globale pour les 3 catégories

propriétaire groupe autre


lecture écriture exécution lecture écriture exécution lecture écriture exécution
400 200 100 40 20 10 4 2 1

Pour obtenir les permissions exprimées en octal, il suffit d'ajouter en octal les nombres de la table de
correspondance ci-dessus, pour lesquels les droits sont positionnés.
Exemples

chmod 700 /home/rep-a-moi droits par défaut pour un rép. personnel.


ls -l /home/rep-a-moi
--> drwx------

Les 2 commandes suivantes sont équivalentes :

chmod 764 test


chmod u=rwx,g=rw,a=r test

83
ls -l test
-rwxrw-r--

TP PERMISSIONS D'ACCES AUX FICHIERS

Ces exercices doivent aider à maitriser le système de droits de Linux, finalement assez simple.
Il est recommandé de les chercher d'abord "sur papier" puis de tester pour vérifier.
Exercice 1
1. Quels sont les droits sur les répertoires personnels (par exemple stagex) ?
2. Un utilisateur différent stagey peut-il y pénétrer ou seulement lister ses fichiers ? et totox, le pourrait-il s'il
faisait partie du groupe de stagex ?
3. Quelles commandes devraient écrire stagex pour accorder le droit de visite de son rép. perso seulement à totox
Exercice 2
1. Comparer les permissions de /etc/passwd et /etc/shadow.
Pourquoi a t-on nommé ainsi ce dernier fichier ? stagex peut-il le lire ? et voir sa présence ?
L'examiner pour deviner son rôle.
2. Par précaution, en faire une copie sous le nom shadow.bak dans /home/temp ! vérifier les droits de
/home/temp/shadow.bak
3. Pensez-vous tout de même pouvoir supprimer le fichier précédent ? Concluez !
4. root fait maintenant une copie de shadow chez vous, dans /home/stagex, sous le nom shadow.bak et vous
accorde la propriété de la copie.
a) Comment fait-il ?
b) stagex vérifie le résultat
5. Vous éditez ce fichier avec Midnight Commander, vous le modifiez, par exemple en supprimant des lignes, et
vous faites une mise à jour.
Ecrivez le mode opératoire.
La mise à jour sera t-elle réalisée ? pourquoi ?
6. Pensez vous que stagex puisse supprimer ce fichier ?
Essayez et expliquez !
Exercice 3
1. En tant que stagex, pouvez-vous créer le rép. temporaire /home/temp ? essayez ! pourquoi ?
2. Effectuez cette création comme root (pensez à la commande su ).
3. Accorder les permissions maximales sur /home/temp; vérifiez.
4. totox, toujours lui, tout content d'avoir enfin un droit d'écriture, dans /home/temp essaie de copier les 2 fichiers
système /etc/hosts et /etc/passwd dans /home/temp ?
y parviendra t-il ? pourquoi ? que donne [totox@p0x ] ll /home/temp ?
5. totox, essaie maintenant de supprimer ces 2 fichiers de /etc.
Réussit-il ?
6. Effrayé à l'idée de se faire pincer par le (ou la) redoutable root, totox veut masquer sa faute tout en faisant punir
stagex à sa place !
Pour cela, il veut que stagex devienne propriétaire du fichier copié passwd.

84
Comment s'y prend t-il ? Réussit-il ?
Et vous comment auriez vous fait ?
Exercice 4

Il s'agit de créer un rép. partagé par tous les membres stagex du groupe stagiaire
Normalement, ce groupe a déjà été créé et rempli de comptes stagex.

1. Créez dans /home un répertoire appelé rep-stagiaire. Rappelez pourquoi cette tâche relève des prérogatives de
root
2. Faites-le appartenir au groupe stagiaire
3. Modifier les permissions sur le rép, pour que tous les membres du groupe stagiaire puissent y écrire et s'y
déplacer.
4. En tant que stagex, vous créez un fichier, par exemple un petit fichier texte (à l'aide de vi ou d'un éditeur
graphique comme kedit) et vous le déposez dans /home/rep-stagiaire.
Si vous êtes paresseux, vous y faites une copie d'un fichier qcq, par exemple /etc/hosts, mais en attribuant des
droits 660
5. [stagex@p0x etc] cp hosts /home/rep-stagiaire
6. [stagex@p0x etc] chmod 660 hosts
7. Vérifier le bon accès en lecture seulement pour les membres du groupe
Ainsi totox qui a fini par être exclu du groupe stagiaire (surtout après l'exercice 3) ne doit pas pouvoir le lire. A
vérifier.
8. Votre collègue (ou votre double !) le perfide stagey (y#x), tente de supprimer ce fichier ou de le renommer
Y parvient-il ? Essayez !
Pourtant, vérifiez que ce fichier appartient au groupe stagex
N'est-ce pas inquiétant ? Expliquez comment cela est possible.
9. Demandez à root de positionner le "sticky bit" sur le répertoire partagé.
Vérifiez bien que le problème est réglé et protège le propriétaire des tentatives de suppression ou de
changement de nom de ses fichiers.
Prolongement : vérifier que cette protection s'applique aussi à distance sous Samba

TP permissions d'accès aux fichiers


corrigés proposés

Exo 1
1. drwx------ stagex stagex /home/stagex
2. même si totox fait partie du groupe stagex, le répertoire n'accorde pas de permissions x de parcours, ni même r
de lecture.
3. Pour que totox puisse accéder en lecture au rép. perso. de
a. ajouter totox dans le groupe stagex, avec linuxconf
Attention ! cela peut être imprudent : en effet, par la suite totox pourra user et abuser des droits accordés
b. chmod g+r /home/stagex

Exo 2
1. Il n'est pas caché, stagex peut le voir avec ll /etc/sha*
Mais il n'est pas lisible : permission non accordée pour less /etc/shadow !
2. root effectue la copie : cp /etc/shadow /home/temp/shadow.bak
85
3. avec une permission r-- sur ce fichier, root peut quand même le supprimer !
4. root effectue la copie : cp /etc/shadow /home/stagex/shadow.bak
et accorde la propriété : chown stage1. /home/stagex/shadow
5. stagex passe les commandes cd , puis ll et observe :
-r-------- stagex stagex shadow.bak
6. stagex peut lire le fichier par less shadow.bak et l'édite avec mc/F4, supprime une ligne, et veut sauvegarder par
F2 --> refus et invite à le renommer.
C'est normal, le droit w n'est pas positionné !
7. stagex veut le supprimer rm shadow.bak
Il reçoit l'avertissement :
rm: détruire le fichier protégé en écriture shadow.bak et répond y, et ... c'est fait.
En effet stagex possède la permission w sur son rép perso /home/stagex.
Remarque :
Si stagex se bloque ce droit, ce ne serait plus possible !

cd /home
chmod 500 stagex
cd
rm shadow.bak
rm: détruire le fichier protégé en écriture 'shadow.bak'
--> y
rm: Ne peut délier 'shadow.bak' : Permission non accordée

Exo 3
1. le rép /home n'accorde un droit d'écriture qu'à root
2. [stagex@p0x ] su
3. [root@p0x ] mkdir /home/temp
4. chmod 777 /home/temp
5. cd /home/temp
6. [totox@p0x temp] cp /etc/hosts . pour déplacer dans le rep. courant
7. Fort heureusement totox n'a pas de droit d'écriture w sur /etc, il ne peut donc rien y supprimer !
8. chown stagex /home/temp/*
opération non permise !
Pris de panique totox n'a plus pensé qu'il a le droit de supprimer cette copie qui lui appartient ...

Exo 4

On suppose la situation initiale suivante :

1. root a créé le rep rep-stagiaire


mkdir /home/rep-stagiaire
2. Il a attribué la propriété collective de ce rép. au groupe stagiaire,
chgrp stagiaire /home/rep-stagiaire
3. avec un accès complet, et rien pour les autres utilisateurs.
chmod 770 /home/rep-stagiaire
Vérification:

ll /home
drwxr-xr-x root root httpd/
drwx------ stagex stagex stagex/
drwx------ stagey stagey stagey/
drwxrwx--- root stagiaire rep-stagiaire/

86
4. stagex, très rétro, crée ce texte directement saisi à la console avec cat
cat, par défaut admet le clavier comme canal d'entrée
5. cd /home/rep-stagiaire
6. cat > doc-stgx.txt
7. Voici un petit texte sans prétention,
8. mais auquel je tiens beaucoup.
9. Mes collègues peuvent le lire, y répondre
10. mais je leur demande de ne pas le modifier
11. ni l'effacer. Merci.
12. signé : stagex
Ctrl-D

Par précaution stagex, pas naïf, en fait une copie privée, sans droit de groupe :

cp doc-stgx.txt doc-stgx.sauve
chmod 600 doc-stgx.sauve
ll doc-stgx.sauve
-rx-------

13. stagey lit le texte par exemple avec less /home/rep-stagiaire/doc-stgx.txt


On vérifie que totox ne fait plus partie du groupe stagiaire et qu'il ne peut pas lire.
14. groups totox
15. totox : totox
16. [totox@p0x home] less rep-stagiaire/doc-stgx.txt
Permission non accordée

17. stagey supprime sans problème le document de stagex


18. [stagey@p0x rep-stagiaire] rm doc-stgx.txt
19. rm: détruire le fichier protégé en écriture 'doc-stgx.txt' ?
20. y (répond t-il sournoisement)
21. [stagey@p0x rep-stagiaire] ll (pour vérifier, le traitre !)
22. Pour n'autoriser les suppressions qu'effectuées par le propriétaire (ou de root), root passe la commande
23. chmod +t /home/rep-stagiaire
24. (ou chmod 1770 /home/rep-stagiaire)
25. ll /home
26. drwxrwx--T root stagiaire rep-stagiaire/
27. (rappel : T au lieu de t, car pas de droit x pour la catégorie other

Ces 2 tentatives échoueront :

[stagey@p0x rep-stagiaire] rm doc-stgx.txt


[stagey@p0x rep-stagiaire] mv doc-stgx.txt doc-stgy.txt

Gestion des quotas


Voici dans ses grandes lignes les phases du démarrage du système jusqu'à une session de travail, et le mécanisme
(appelé System V) de lancement ordonné des processus et en particulier les services.

Rappels : montage des systèmes de fichiers


Quels que soient leur type (vfat, ext2, swap, iso ..) et leur support (partitions du disque dur ou amovibles (cd,
disquettes ...) ou accessibles par le réseau (NFS, Samba ..), le procédé de montage intégre les fichiers dans un
répertoire (leur point de montage) de l'arborescence générale du système.

87
Les commandes mount/umount exécutent le montage/démontage des systèmes de fichiers, conformément aux
directives contenues dans /etc/fstab. En particulier, cette table de montage précise si le système de fichiers doit etre
monté lors de l'initialisation ou à la demande, par root ou n'importe quel utilisateur.

Principe et mise en oeuvre des quotas

Il s'agit de limiter l'espace disque et/ou le nombre de fichiers alloués aux utilisateurs ou aux groupes, sur un
système de fichiers désigné, donc sur une partition.

Le but recherché est le plus souvent de contraindre à une meilleure gestion des rép.personnels. Quand un utilisateur
dépasse la taille maximale fixée, il est averti et dispose d'un délai pour "faire le ménage" ...
Plus précisément, cela se quantifie en donnant 2 nombres, les limites

"soft" : il s'agit d'une tolérance, cette limite peut etre franchie (pendant 7 jours par défaut)
"hard" : franchie par un utilisateur ou un groupe, celui-ci ne peut plus écrire sur le disque, tant qu'elle est
dépassée

1. Vérifier d'abord que le paquetage est bien installé : rpm -q quota


2. Activer la prise en charge des quotas pour un système de fichiers, en ajoutant sur la ligne adéquate de
/etc/fstab, le mot-clé usrquota dans la liste des options

On suppose dans la suite que la partition /dev/hda6 est affecté au répertoire /home. Pour activer la surveillance
des répertoires personnels, on doit effectuer cette déclaration dans le fichier /etc/fstab, en ajoutant l'option
usrquota (et/ou groupquota) sur la ligne qui configure le montage de /home :

/dev/hda6 /home ext2 defaults,usrquota 1 2


Initialiser les tables de quotas
# quotacheck /dev/hda6

On peut vérifier que le fichier quota.user a été créé dans /home. Il renferme la table des quotas.
Et générer un rapport de surveillance par repquota -a

3. Attribuer des limites aux utilisateurs "à surveiller" La commande edquota fait passer en mode édition dans vi

4. # edquota -u toto
5. Quotas for user toto:
6. /dev/hda6 : blocks in use: 148, limits (soft = 0 , hard = 0)
7. inodes in use: 37, limits (soft = 0 , hard = 0)

Il suffit de modifier les valeurs des limites soft et hard.


. Pour attribuer les memes quotas à tous un ensemble d'utilisateurs, il n'est heureusement pas question de les
traiter un par un avec edquota -u
L'option -p de edquota permet de proposer un utilisateur comme modèle à tous les autres.
La ligne de commande suivante est souvent adoptée :
.
. # edquota -p toto `awk -F: '$3 >500 {print $1}' /etc/passwd `

Les commandes

COMMANDE SIGNIFICATION
quotaon/quotaoff partition|-a active/désactive les quotas sur la|toutes partition(s)
repquota -a affiche un rapport complet par utilisateur et par groupe
quota -v toto état des quotas pour l'utilisateur
quotacheck <partition> Met à jour les tables de quotas. Lancé à chaque démarrage du système

88
edquota -u toto Edition sous vi des limites
edquota -p toto liste Impose les quotas de toto aux membres de la liste
edquota -t Edition sous vi de la durée de la "grace"

Manipulations
1. Vérifier que vous disposez d'une partition dédiée à /home
2. Mettre en œuvre la vérification des quotas sur cette partition
3. Créer un utilisateur standard toto (avec les options par défaut)
4. Quelle est la taille de son répertoire personnel ?
du -h /home/toto
5. Configurez et activez les quotas sur cette partition
6. Surveiller toto en lui fixant des limites d'espace disque 100 Ko et 300 Ko
7. Que vous indique alors le rapport fourni par repquota ?
8. toto n'en tenant pas compte, recopie dans son répertoire perso la doc d'apache à /usr/share/doc/apache/
Que se passe t-il ? Conclusions ?
9. toto fait le ménage dans son rép. personnel. Peut-il de nouveau en disposer ?
10. Si root désactive la surveillance par quotaoff -a, que peut faire toto ?
11. Comparez les commandes repquota -a et du -h /home/toto. Suffit-il de réactiver par quotaon -a ? Testez !
12. Créer quelques nouveaux utilisateurs et leur imposer les mêmes quotas qu'à toto

GESTION DES PROCESSUS


Un processus est un programme chargé en mémoire et en cours d'exécution. Contrairement à Windows 98, les
systèmes UNIX sont des systèmes multitâches préemptifs, c'est à dire que chaque programme ou processus
tournent indépendamment. Lorsqu'un processus est planté, le système continue à tourner car les processus
sont traités indépendamment. La destruction d'un processus n'a pas d'effet sur l'exécution des autres processus.

Informations associées à chaque processus :

Pour chaque processus exécuté, le système d'exploitation stocke un certain nombre d'informations : Numéro unique
du processus PID (Process IDentification) ;

Numéro du processus parent PPID (Parent Process Identification) ; Numéro d'utilisateur PID (User
IDentification) ayant lancé le processus ; Numéro du groupe GID (Group IDentification) ayant lancé
le processus ; Durée de traitement utilisé (temps CPU) et priorité du processus ; Référence au
répertoire de travail courant du processus ;Table de référence des fichiers ouverts par le processus.

Chaque processus peut créer lui−même des processus d'où la notion de processus parent. C'est le cas par exemple
du serveur Apache : lors de son lancement, le processus père crée plusieurs processus fils afin de répondre
indépendamment à plusieurs clients. La destruction du processus parent (parent process) entraîne la destruction de
tous les processus fils (child process).

Afficher les processus avec la commande top :

La commande top permet d'afficher des informations en continu sur l'activité du système (quantité de RAM et
pourcentage de CPU utilisés par les processus). Pour quitter la commande top, il suffit de taper la lettre p.

Commande ps :

89
Il s'agit de la commande la plus employée pour obtenir des informations sur les processus exécutés par le système.
Cette commande permet de connaître les processus actifs à un moment donné.

$ ps
PID TTY TIME CMD
26687 pts/2 00:00:00 bash
26797 pts/2 00:00:00 ps

La commande ps sans arguments ne fournit que la liste des processus associés au terminal utilisé. Pour connaître
tous les processus exécuté par le système, il est nécessaire d'ajouter l'argument −aux

$ ps affiche tous les processus lancés par l'utilisateur dans le terminal


$ ps −x affiche tous les processus lancés par l'utilisateur
$ ps −aux affiche tous les processus lancés par tous les utilisateurs
$ ps −aux | grep httpd affiche tous les processus nommés httpd lancés

Commande pstree :

La commande pstree permet d'afficher les processus sous forme d'arborescence : pratique pour voir les
dépendances entre processus.

Tuer un processus avec la commande kill :

La commande kill permet d'envoyer un signal à un processus en cours.

Syntaxe : kill −Numéro−de−signal PID

Pour tuer un processus, c'est à dire obliger l'application à se terminer, nous utilisons le signal de numéro 9
(SIGKILL) qui oblige le processus à se terminer : cette option permet de tuer le processus quel que soit son état et
même si celui−ci est planté ou instable.

Exemple : lancement de la commande top, retour au shell avec les touches Ctrl + Z, recherche du processus
correspondant à la commande top et destruction de celui−ci.

$ top
(puis appuyez sur les touches Ctrl et Z)
$ ps −aux | grep top
pdrouot 27060 1.9 0.8 1736 1060 pts/1 T 09:02 0:00 top pdrouot 27064 0.0 0.3 1332
512 pts/1 S 09:02 0:00 grep top
$ kill −9 27060

TP UNIX n°1
Gestion des
Question n°1 : Processus
90
La commande “ps” est la commande qui permet d'obtenir des informations sur les processus en cours. Pour
reprendre les termes du man : c'est un cliché instantannée des processus en cours.
Selon les options que nous ajoutons derriére “ps”, nous avons des informations sur
différents détails :
• Priorité des processus : ps o pri
• Mémoire virtuelle occupée par les processus : ps o vsz
• Mémoire physique occupée : ps o rss
• Consommation en CPU : ps o pcpu
• Opérations d'E/S effectuées : ps o onswap
• Le nombre de pages virtuelles utilisées : ps osz
• Consommation en temps utilisateur : ps etime

A noté tout de fois que la commande ps suivi de l'option l permet d'obtenir pas mal des informations ci dessus. Il
existe pas mal d'alias fait. Mais ils donnent beaucoup d'informations qui ne nous interessent pas. Mais ils ont
l'avantage d'etre rapide.

Question n°2 :

La commande nice sans argument permet d'afficher la priorité d'ordonnancement en cours.


Si aucun ajustement n'est précisé la valeur de priorité de la commande est augmentée
de 10 exemple :

[root@jm]# nice
0 =>il m'indique que bash est à une priorité 0 [root@jm]# nice bash => je donne une
priorité de 10 à bash [root@jm]# nice
10 => bash à donc une priorité de 10

La priorité peut être ajustée avec nice dans l'intervalle 20 (le plus prioritaire) à 19 (le moins prioritaire)

A noté tout de fois que seul le super utilisateur (root) peut indiquer un ajustement négatif.

Question 3 :

sleep fait une pause pendant une durée correspondant à la somme des valeurs indiquées sur la ligne de commande .
Chaque argument est composé d'un nombre suivi éventuellement d'une unité (s, m, h, d).

Ex : sleep 10; ps => cette commande va lancer une commande ps 10s aprés la validation (touche
entrée).
sleep 1m, ps => pareil mais pour une minute
sleep 1h, ps => pareil mais pour une heure
sleep 1d, ps => pareil mais pour un jour.

Question n°4 :

La commande “sleep 5; ls” envoie 5s aprés une commande ls.


La deuxiéme commande execute immediatement la commande ls en arriére plan, elle n'attend donc pas la fin de la
commande ls et envoi directement le résultat. Le & permet de placer un processus en arrière plan.

Question n°6 :
91
at et batch : at et batch lisent, depuis l'entrée standard, ou depuis un fichier, des commandes qu'ils exécuteront
ultérieurement, en utilisant /bin/sh. at lance les commandes indiquées à une heure précise. atq permet d'afficher ce
qui est en cours pour son compte ou toutes les commandes en cours en root. atrm efface les travaux en attente.
batch quand à lui attend que la charge processeur se libére.
Le SuperUtilisateur peut toujours employer ces commandes. Pour les autres
utilisateurs, les permissions sont déterminées par les fichiers /etc/at.allow et /
etc/at.deny.

Voici un exmple de l'utilisation d'at : on admettra qu'on a créer au préalable un fichier script.rc.
at f script.rc c 18h05 m : cette commande permet d'executer un fichier script.rc à
18h05 et envoi un mail à la fin de son execution au proriétaire qui a lancé la commande.

Question 7 :

Pour permettre d'indiquer à un utilisateur quelconque comme moi par exemple, la commande echo ne me
permet pas de maniére visible de me signalé la fin du cours. En effet la commande at va m'envoyer le résultat
sous forme de mail.
alors je propose d'écrire un fichier test.rc où j'insére la commande wall il est temps de terminer le TP, je
l'enregistre. Je lui attribue les droit d'execution (chmod +x test.rc) puis je lance la commande at : je programme
l'alerte à 18h20
at 1820 f ./test.rc (le ./permet d'executer le fichier)

Question 8:

La commande at est très bien pour programmer une action se faisant une fois à un temps donné mais pour faire
une tâche récurante, il est mieux d'utiliser cron.
La cron est un programme (installé par défaut) qui est chargé de lancer d'autres programmes de manière périodique
et automatique. Chaque utilisateur peut définir avec sa cron les programmes qu'il veut lancer périodiquement. Il lui
suffit d'éditer sa cron et de définir la commande et sa périodicité d'exécution.
On lance la commande crontab e un fichier s'ouvre et j'ajoute la ligne suivante :
30 18 * * * ls a /root |grep *~ je quitte en sauvegardant. la commande sera alors éxecuter tous les jours à
18h30. le résultat sera placé dans le fichier / var/spool/mail/users/

Question 9 :

voici un extrait du bash :


[root@jm]# sleep 100000
[1]+ Stopped sleep 100000 [root@jm]# jobs
[1]+ Stopped sleep 100000 [root@jm]# fg
sleep 100000
[1]+ Stopped sleep 100000 [root@jm# bg
[1]+ sleep 100000 & [root@jm]# jobs
[1]+ Running sleep 100000 & [root@jm]# ps
PID TTY TIME CMD
14077 pts/4 00:00:00 bash
14095 pts/4 00:00:00 sleep
14096 pts/4 00:00:00 ps
[root@jm]# kill 14095

Question 10 :

92
Pour simuler le &, il suffit de lancer une commande par exemple vi et de faire l'association des deux touches
[CTR] et [Z]. On récupére alors le bash et on peut également vérifier que le processus vi est toujours en cours (par
la commande ps). Il suffit de faire la commande fg pour récupérer le vi.

Question 11 :

la commande jobs permet de connaitre les commandes qui tournent en arriére plan.
la commande ps, elle, montre toutes les taches en cours.
l'association des deux touches [CTR] et [Z] permettent de placer une tache en arrière plan sans arréter cette tache
(équivalenr à &). La touche fg, elle permet de la faire revenir en avant plan.

Question 12 :

La commande kill envoie un signal à un processus. (kill s : signal).


Sous linux quand ne précise pas de signal, kill envoie le signal TERM et tuera le processus (alias de kill 9).
Je ne sais pas si c'est pareil sous UNIX, c'est peut être un alias inexistant sous UNIX.
L'option kill p doit juste permettre de connaitre le numero (id) du processus. Le kill
l permet de connaitre tous les signals existants : (faire un man kill pour les visualiser)

Question 13 :

Quand on kill le processus correspondant à notre interpreteur de commandes courant


(bash), la fenêtre se ferme.
commande: kill 9 n° du PID ex : kill 9 13256
pour connaitre le n°, il faut faire un ps.

ORGANISATION DES PARTITIONS SOUS LINUX


 Les types de systèmes de fichiers
Linux utilise deux types de systèmes de fichiers :
 Swap qui sert de mémoire virtuelle, qui est utilisée quand la mémoire vive est pleine ;
 Ext4 qui sert à stocker les fichiers et les répertoires (il existe de nombreuses alternatives à Ext4 : Ext3, Ext2,
ReiserFS, xfs, jfs…).
Découpage et dimensionnement
Traditionnellement, on crée une partition avec un système de fichiers de type Swap de taille :
 double ou triple de la taille de la mémoire vive quand celle-ci est inférieure à 256 Mo ;
 égale à la taille de la mémoire vive quand celle-ci est supérieure ou égale à 256 Mo.
Cette partition est appelée partition de swap ou d'échange.

Note
Les ordinateurs récents disposent d'une quantité proprement ahurissante de mémoire vive, souvent un
giga-octet ou plus. C'est largement plus que vous n'en aurez besoin sous GNU/Linux, donc votre partition
de swap aura peu de chance de servir ! Dans ce cas, vous pouvez quand même en définir une, puisque
vous devriez également avoir de l'espace disque à revendre.

Pour stocker les fichiers et les répertoires, on crée souvent plusieurs partitions avec un système de fichiers de type
Ext4 (ou une de ses alternatives).
Pour les serveurs, les administrateurs GNU/Linux ont souvent pour habitude de sectionner le système de fichiers
en de nombreuses partitions pour assurer une meilleure résistance du système aux pannes et aux failles. Par
exemple, il ne faudrait pas qu'un simple utilisateur puisse saturer la partition sur laquelle se trouve la racine du
système de fichiers juste en remplissant son répertoire personnel (/home/son_login/), car ceci pourrait rendre le
système instable. Il ne faudrait pas non plus que les journaux système (ou logs) qui se trouvent dans le répertoire
/var/log/ remplissent la partition sur laquelle se trouve la racine suite à une attaque réseau, ce qui aurait la même

93
conséquence. Ce raisonnement est valable pour plusieurs autres répertoires. Pour gagner en flexibilité, on utilise
également le gestionnaire de volumes logiques (LVM), qui permet de définit des partitions redimensionnables à
volonté.
Figure 11.1. Exemple de partitionnement

Sur une machine personnelle, de telles précautions ne sont pas nécessaires et imposent des contraintes inutiles sur
la taille des répertoires. Il est en revanche utile de dédier une partition séparée aux fichiers personnels /home/,
pour pouvoir réinstaller facilement votre système en conservant vos données, comme sur la Figure 11.1.
 Deux exemples
Le Tableau 11.1 et le Tableau 11.2 donnent deux exemples de partitionnement : un pour une machine personnelle
et un pour un serveur.
Tableau 11.1. Pour un ordinateur personnel

Partition Taille
Swap double de la mémoire vive
/ 7 Gio
/home tout le reste de l'espace alloué à Linux

Tableau 11.2. Pour un serveur

Partition Taille
Swap Égale ou double de la mémoire vive
/ 2 Gio
/tmp 500 Mio sur LVM
/var 1 Gio sur LVM
/home selon les besoins des utilisateurs, sur LVM

Dans la suite de ce chapitre, nous allons mettre en œuvre la configuration proposée dans le premier exemple.

MONTAGE DE DISQUES
Montage manuel

Dans les systèmes UNIX, les périphériques, les disques durs et les partitions sont gérées sous forme de
fichiers contenus dans le répertoire /dev : chaque fichier du répertoire /dev correspondent à une sorte de driver.

Pour utiliser un périphérique, il faut attacher le fichier périphérique correspondant à un point de montage.

Ainsi /dev/hda correspond au premier disque dur IDE, /dev/hda1 à la première partition du disque dur
IDE,
/dev/hda2 à la seconde partition, /dev/hdb au second disque dur IDE, /dev/hdb1 à la première partition du
second disque dur, etc..

94
De même /dev/sda correspond au premier disque dur SCSI, /dev/sda1 à la première partition du disque
dur
SCSI, etc..

/dev/cdrom correspond souvent au lecteur de cd−rom et /dev/fd0 au premier lecteur de disquette. Pour

"monter" un périphérique ou une partition, il faut utiliser la commande mount.

Syntaxe : mount −t type−du−support fichier−périphérique point−de−montage

Traditionnellement, les périphériques tels que les disques et partitions sont montés dans le répertoire /mnt : par
exemple /mnt/cdrom pour un cdrom.

Les principaux type de support sont :

ext2 : filesystem Linux ; msdos : disque de type MS−DOS ; vfat : disque de type Windows ;
iso9660 : CD−ROM ;

Exemples :

Montage d'un lecteur de CD−ROM : $ mount −t iso9660 /dev/hdb /mnt/cdrom


Montage d'une partition Windows: $ mount −t vfat /dev/hda1 /mnt/win98

Pour démonter un périphérique, il faut utiliser la commande umount.

Exemple : pour changer de CD, il faut au préalable démonter le CD courant avec la commande :

$ umount /mnt/cdrom

A noter qu'à l'issu de l'installation de la distribution Mandrake Corporate Server, le lecteur de CD−ROM est
monté par défaut ainsi que l'éventuelle partition Windows.

Montage automatique

Le fichier /etc/fstab (File System Table) contient toutes les informations concernant le montage automatique des
disques au démarrage du système.

$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1 none
/dev/hda7 /home ext2 defaults 1 2
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0

/dev/hda1 /mnt/windows vfat user,exec,umask=0 0 0 none /proc proc defaults 0 0


/dev/hda6 swap swap defaults 0 0

Liste des paramètres associés à chaque périphérique :

device (périphérique) de la partition ;


point de montage de la partition ;
type de la partition ;
options (gestion des droits) ;
sauvegarde (si ce champ est non nul, l'utilitaire dump doit sauvegarder ce système de fichier) ;
test et réparation (si ce champs est non nul, l'utilitaire fsck doit tester la partition avant de la monter. Le
numéro correspond à l'ordre des tests).

95
L'ajout d'un périphérique dans le fichier /etc/fstab permet de le monter automatiquement au démarrage.

TP : MONTER SON DISQUE WINDOWS


Afin d'accéder à votre disque ou à vos partitions Windows, vous devez tout d'abord savoir quel est leur nom sous
Linux. Vous pourrez bien évidemment faire différents tests sans mettre en danger l'intégrité de vos données.
Connecter une partition ne signifie en rien modifier son contenu. De plus, si votre système Ubuntu Linux n'arrive
pas à lire ou utiliser une partition, il refusera tout simplement de la monter.

Travailler avec l'utilisateur root


Sous Linux, toutes les manipulations qui touchent au système sont réservées au super utilisateur : root. Cet
utilisateur a tous les droits, tous les pouvoirs. Il faut dont être particulièrement attentif à tout ce que l'on fait quand
on dispose des pouvoirs de root. Root, s'il le souhaite, peut en quelques secondes effacer tout le contenu d'un
disque-dur. Suivez donc scrupuleusement les étapes suivantes.

Identifier les disques et les partitions


Afin d'identifier les différents disques et partitions de votre PC, vous allez utiliser un utilitaire en ligne de
commande qui a pour nom fdisk. Même si la manipulation semble spartiate cela n'a rien de compliqué et ne
prend que quelques minutes.
1 Lancez un terminal depuis le menu de démarrage de votre distribution.

2 Dans le terminal, saisissez la commande su – puis validez par la touche


entrée. Donnez ensuite le mot de passe sur super utilisateur (root).
3 Une fois le terminal ouvert, saisissez la commande fdisk -l puis validez
par la touche Entrée.

Lancez fdisk
4 Lancer ainsi la commande vous affiche la liste des différents disques et
partitions de votre système.

fdisk vous affiche la liste des partitions


5 Ne vous préoccupez pas des premières lignes et concentrez-vous sur le
96
tableau qui résume les différentes partitions présentes sur le disque. On
voit ici qu'il n'y a qu'une partition : hda1. Notez également son type,
affiché par fdisk : ici NTFS.

Notez le nom de la partition Windows


Maintenant que vous connaissez le nom de votre partition Windows, vous pouvez la monter sous
Linux.
Si le type de votre disque, affiché par fdisk, est différent de NTFS notez bien le nom qui lui est donné
(Certainement FAT ou VFAT). Vous en aurez besoin par la suite.
Connecter la partition
Pour monter une partition il faut connaître son emplacement "physique" ainsi que le dossier dans lequel on
souhaite la monter. Sous Linux un dossier a spécialement été prévu pour ce type de manipulations, il s'agit du
dossier mnt.
1 Dans le terminal identifiez-vous en tant que superutilisateur puis
saisissez la commande mount -t ntfs /dev/hda1 /mnt puis validez par la touche
Entrée.

Montez la partition
Attention, cette fois le type de la partition est en minuscule. Vous demandez ainsi à monter la première partition du
premier disque IDE de type NTFS dans le dossier mnt (dossier alors appelé point de montage). Remplacez hda1
par le nom de la partition qui vous concerne. Modifiez également au besoin le type de système de fichier.
2 Vous reprenez la main dans le terminal, cela veut dire que le montage s'est
bien passé.

La partition est bien connectée


3 Utilisez la commande konqueror /mnt ou nautilus /mnt pour lancer un
gestionnaire de fichier qui s'ouvrira directement sur le dossier dans lequel
est montée la partition Windows.

Vous allez explorer la partition Windows


4 Quelques lignes de code doivent défiler avant de laisser la place à un
gestionnaire de fichiers ouvert sur votre partition Windows.

97
Votre disque Windows sous Linux

Monter le disque sans en connaître le type


Vous pouvez également utiliser la commande mount sans préciser le système de fichiers utilisé par la partition. La
commande essaiera alors de détecter automatiquement le type approprié.
Vous vous en rendrez compte en voulant éditer ou supprimer un fichier sur votre partition Windows : celle-ci est
montée en lecture seule. Linux préfère ne pas prendre de risques avec ce qu'il ne maîtrise pas parfaitement.

Démonter une partition Windows


Une fois que vous n'avez plus besoin d'accéder à votre partition Windows et pour faire les choses proprement,
vous devez démonter la partition concernée, la déconnecter du système. Il suffit pour cela d'une simple commande.
Pour que celle-ci puisse s'exécuter vous devez prendre le temps de fermer toutes les fenêtres qui pouvaient être
ouvertes sur des dossiers Windows ou attendre que toute procédure de copie de fichiers soit terminée. Sans cela votre
Linux refusera tout naturellement de démonter la partition.
1 Dans un terminal, identifiez-vous-en tant que super utilisateur puis
demandez à lister le contenu du répertoire dans lequel vous avez monté votre
partition Windows à l'aide de la commande ls /mnt/ (remplacez /mnt/ par le
dossier dans lequel vous avez monté la partition).

Le dossier /mnt affiche bien le contenu de la partition Windows


2 Saisissez la commande umount /dev/hda1 et validez par la touche Entrée.
Remplacez /dev/hda1
par la partition qui vous concerne.

La partition va être démontée


3 Une fois le démontage effectué, vous récupérez la main et vous êtes
informé que l'opération a bien été effectuée.

La partition n'est plus connectée


4 Vous pouvez lister à nouveau le contenu du dossier dans lequel était
montée la partition pour constater qu'elle n'y est plus.
98
Intégration d'un système de fichiers (montage)
Considérons deux partitions (Figure 10.1). Sur ces partitions sont écrits deux systèmes de fichiers : ce sont des
formats de stockage d'une arborescence de fichiers et de répertoires. La première partition contient une
arborescence racine, et la seconde des répertoires personnels d'utilisateurs.
Figure 10.1. Avant intégration

Nous allons pouvoir intégrer le second système de fichiers dans le répertoire /home du premier à l'aide de la
commande mount : on parle de monter le second système de fichiers dans le point de montage /home.
Par exemple, si le deuxième système de fichiers est /dev/hda2, il suffira de taper :

# mount /dev/hda2 /home

pour obtenir la configuration présentée sur la Figure 10.2.


Figure 10.2. Après intégration

99
100
TP Partitionnement

Validé pour CentOS 5.2 Objectif


Se familiariser avec les trois étapes du
partitionnement

Préalable

Les trois étapes du partitionnement sont les suivantes :


- partitionner un disque dur
- formater les différentes partitions
- monter les partitions dans l'arborescence

A vous !

L'objectif est de créer 5 partitions :


- une partition ext3 de 500 Mo montée sur /oracle_u0
- une partition ext3 de 250 Mo sur /partage1
- une partition fat32 de 250 Mo sur /partage2 (pour accès depuis un système MsDos/Windows en
dual-boot)
- une partition ext2 de 500 Mo sur /video
- une partition ext2 de 500 Mo sur /web

!!! Attention !!! Faites-vous un tableau rappelant ce que vous avez fait, avec les colonnes suivantes :
- nom de la partition /dev/hdb1, /dev/hdb2, etc.
- la taille
- le type de FS vfat, ext2, ext3, etc.
- le point de montage

Etape 1 : Partitionnement avec fdisk


1 à 4) D'abord, ajoutez un disque virtuel d'environ 2Go à votre machine et démarrez-la.

5) L'accès à votre disque se fait via un fichier dans /dev/


Quel est le nom du fichier pour votre nouveau disque dur ?

6) Pour voir les disques durs physiques dans votre machines, tapez :
fdisk -l

Pour lancer fdisk, il faut préciser le disque dur que l'on veut manipuler. Par exemple :
fdisk /dev/hdb

Mode d'emploi de fdisk :


Pour voir les commandes disponibles, tapez m
Pour afficher les partitions déjà créées, tapez p (print).
Pour créer une nouvelle partition, tapez n
Vous pouvez supprimer une partition en appuyant sur d

Les partitions ne sont écrites qu'à la fin, lorsque vous appuierez sur w. En attendant, vous
!!! pouvez créer et supprimer les nouvelles partitions comme bon vous semble (évitez
cependant de supprimer les partitions de démarrage !). En cas de doute, quittez sans écrire
en appuyant sur q.

7) Créez les différentes partitions comme défini dans l''objectif de début du TP. A vous de choisir le
type de partition (primaire, étendue, logique)

101
Attention : Cette étape consiste simplement à définir le type de partition et leur taille. Le type de
système de fichier (ext3) et le point de montage (/server...) se fera dans les étapes ultérieures.
Si vous avez des difficultés, appelez l'instructeur.

Etape 2 : Formatage avec mkfs.


8) Une fois les partitions créées, il faut les formater. Cela est fait avec les commandes mkfs. (des
commandes commençant par mkfs.)

Pour afficher les commandes commençant par mkfs. tapez mkfs. puis appuyez sur TAB.

La commande mkfs.ext3 permet de créer des systèmes de fichiers ext3 (les plus populaires du
moment). Sa syntaxe est très simple :
#mkfs.ext3 /dev/nom_partition

9) Formatez les nouvelles partitions que vous venez de créer (au besoin, pour voir leur nom,
retournez dans fdisk).

Vous remarquerez qu'il n'est pas forcément besoin de redémarrer la machine pour prendre en
compte les nouvelles partitions.

Etape 3 : Montage avec mount


10) Le montage consiste à définir un point d'accès dans notre arborescence pour accéder aux
partitions. Contrairement à Windows, le point d'accès n'est pas une lettre (D:, E:, etc.) mais un
répertoire.

L'idée est simplement de faire une correspondance entre une partition sur un disque et un
répertoire. La syntaxe est donc simple :
#mount /dev/fichier_disque_partition /point_de_montage

Par exemple :
mount /dev/hdb1 /toto

Avec l'opton -f, vous pouvez préciser le type de système de fichier (fat32, ext2, ext3) existant sur
la partition, mais mount détecte en général automatiquement.

Avec la commande mount, montez les partitions définies à la question 4.

!!! Rappelez-vous : les points de montage sont des répertoires par lesquels on accède à la partition. Ils
doivent être créés avant le montage.

11) Ensuite, tentez d'accéder à vos paritions et créez-y répértoires et fichiers.

Pour voir les paritions montées, tapez simplement :


mount

Cette information est également disponible dans le fichier /etc/mtab

12) Vous pouvez également démonter une partition, c'est-à-dire rompre ce lien entre un fichier de
périphérique dans /dev et le point de montage.

Pour cela, tapez :


umount /point de montage
ou
umount /dev/fichier_périphérique

102
Démontez toutes les partitions que vous venez de monter. Nous allons créer le montage
automatique.

Automatisation du montage au démarrage dans /etc/fstab


13) Le montage doit également être automatisé. Cela est fait dans le fichier /etc/fstab qui est lu
à chaque démarrage. Chaque ligne du fichier correspond à une partition qui doit être montée.

Champs de /etc/fstab :
 périphérique à monter. Par exemple, /dev/hda2 ou un répertoire réseau
 point de montage. Par exemple, /home
 type de système de fichiers. Par exemple, ext3
 options. defaults si pas d'option
 ce 5ème champ indique si la partition doit être sauvegardée. 0 pour non et 1 pour oui
 ce 6ème champ indique si la partition doit être vérifiée (par fsck) au démarrage. 0 ne vérifie
pas la partition, 1
pour le système de fichier racine (prioritaire) et 2 pour tout autre système de fichier.

14) En suivant ces règles, remplissez /etc/fstab avec les champs appropriés pour que les
nouvelles nouvelles partitions se montent automatiquement au démarrage.

Ne supprimez pas les lignes existantes ! Rajoutez les nouvelles définitions à la fin du fichier avec vi.

Vous n'avez pas besoin de redémarrer votre système pour prendre en compte les partitions. Tapez
la commande :
mount -a

Et mount lira automatiquement les parititions à monter dans /etc/fstab

Vérifiez que les partitions sont bien montées.

15) Ensuite, redémarrez votre machine et vérifiez que le système monte bien toutes les partitions
automatiquement.

Pour redémarrer, tapez :


reboot

16) Démontage

Créez quelques fichiers et répértoires dans /web

Démontez le point de montage /web

Après le démontage, la partition apparaît-elle encore dans le le résultat de la commande mount ?

17) Nous pouvons remonter cette partition dans un répertoire différent.


Créez un répertoire /truc et monter la partition sur ce répertoire.

Voyez-vous maintenant le nouveau montage dans le résultat de la commande mount ?

Promenez-vous dans /truc et constatez que vos répertoires et fichiers apparaissent bien. On peut
démonter une partition et la remonter où l'on veut, mais cela n'est pas toujours judicieux, car le système se
réfère à certaines partitions (par exemple, /) et certains fichiers de configurations (les répertoires
utilisateurs doivent être dans /home et pas dans /truc)
103
Vous pouvez également constater que contrairement à un système DOS/Windows, ou chaque partition et
lecteur possède une lettre, dans les systèmes UNIX/Linux, il est impossible de savoir en regardant
l'arborescence du disque, si un répertoire appartient à la même partition ou à un partition différente.

18) Supprimez les fichiers et dossiers de /truc

Ensuite, déplacez les fchiers de /home vers /truc

19) Maintenant, démontez votre partition de /truc et montez là en tant que /home

Vérifiez dans /home la présence de vos répertoires et fichiers utilisateurs.

Que venons-nous de faire ?

Nous venons de créer une partition dédiée pour les répertoires utilisateurs !

Vérification automatique
20) Pour les partitions /web /video, dans /etc/fstab forcez la vérification fsck au démarrage de priorité
2.

Maintenant, redémarrez la machine.

Observez bien, les FS devraient être vérifiés.

Montage d'un lecteur CDROM


21) Nous allons maintenant monter le lecteur de CDROM. Pour cela, il faut d'abord qu'il y ait un CD dans le
lecteur. Insérez un disque virtuel iso. Demandez à l'instructeur si besoin.

En général, il y a toujours un point de montage (un répértoire) déjà créé pour accueillir le montage du
CDROM. Bien souvent, il s'agit du répertoire /mnt/cdrom dans le répertoire /mnt qui sert aux montages
temporaires.

Il peut également s'agit d'un CDROM émulé avec une image ISO (souvent sur machines virtuelles).

Démontez le lecteur CDROM si nécessaire, puis remontez-le. Que vous dit mount sur le type d'accès au point
de montage du CDROM ?

21) Démontez à nouveau le CDROM et tapez maintenant :


mount /dev/hdc /mnt/cdrom

Que voyez-vous maintenant dans /mnt/cdrom ?

En fait, /dev/cdrom et /dev/hdc sont la même chose. Pourquoi ?

Confirmez ce fait en affichant la nature du fichier /dev/cdrom :


ls -l /dev/cdrom

Que cela veut-il dire ?

Bonus

104
Eteignez la VM à froid, c'est-à-dire sans exécuter la commande halt, comme s'il y avait une coupure de
courant.

Redémarrez maintenant la machine et préparez-vous à voir en combien de temps l'OS vérifie les Systèmes
de Fichiers ext2, ext3, et msdos (vfat)

Attention ! Pour que ces FS soient vérifiés au démarrage, ils doivent être déclarés avec cette option dans
/etc/fstab

Pourquoi la vérification de ext3 est-elle plus rapide ?

Une fois le système redémarré, essayez de vérifier les FS ext2 et ext3 que vous avez créés avec la commande
fsck.

Attention ! N'éxecutez pas fsck sur la partition racine !

Une fois le TP fini, supprimer de /etc/fstab les références au 2ème disque dur virtuel que nous venons
de créer.

Eteignez ensuite la machine virtuelle (commande halt) et supprimez sur la machine hôte l'image du disque
virtuel créée au début de ce TP.

Résumé des notions


Dans ce TP, vous avez appris à :
- partitionner un disque dur
- formater les partitions
- monter les partitions
- automatiser le montage au démarrage
- monter un lecteur CDROM

105
INSTALLATION DE LOGICIELS

Les frontends d'installation de paquets Yumex Synaptic...


Les frontends permettent de faire la liaison entre l'interface graphique et le logiciel de gestion des paquets On les
trouvera sous le nom de Yumex, Synaptic, Ksynaptics, Yast, Package Manager.

Simple d'utilisation, il suffira alors de sélectionner le paquet désiré pour installer le paquet voulu.
La mise à jour, l'ajout de dépôts se fera très simplement.
Exemple de ubuntu et debian

106
La dépendance des paquets correspond à la nécessité d'installer un paquet afin que celui sélectionné à la base
puisse fonctionner: sous Windows, il est parfois nécessaire d'installer un runtime. Les dépendances jouent le
même rôle.

Les commandes de gestion des paquets


Dans le cas de débutant, le frontend est souvent une solution simple d'emploi. Dans le cadre de l'administration,
il sera souvent préféré l'utilisation de la ligne de commande.

On distingue deux grands types de paquets. Les paquets DEB et les paquets RPM.

Les distributions Suse, Fedora et Mandriva utiliseront des paquetages à base RMP alors que Debian utilise des
paquets DEB.

L'installation de nouveaux logiciels s'effectue soit à partir des sources, soit à partir d'un binaire (application
déjà compilée), soit à partir d'un paquetage rpm.

Installation à partir des sources

L'installation à partir des sources consiste à compiler des lignes de code (en C ou en C++) puis à installer le
binaire produit. Les avantages de cette méthode sont multiples :

Un même code source peut être compilé sur n'importe quelle machine UNIX et ce quel que soit
son processeur (Intel, Alpha, Risc, PowerPC, etc..) ;

Vous pouvez spécifier le répertoire où l'application doit être installée ;

Vous pouvez compiler l'application avec des options spécifiques (ajout de modules particuliers, optimisation
du binaire en fonction du processeur, etc…)

Les sources étant moins volumineux que les binaires, le téléchargement des sources d'une application
est beaucoup plus rapide que le téléchargement du binaire ou du paquetage rpm correspondant.

Qu'elle que soit l'application, la procédure d'installation est identique :

1. Préparation de la compilation par la commande : $ ./configure


−prefix=répertoire−de−destination
2. Compilation de l'application par la commande : $ make
3. Installation de l'application par la commande : $ make install

Il ne vous reste ensuite plus qu'à exécuter le script de lancement de l'application et si la nouvelle application
doit être lancée systématiquement au démarrage de la machine (cas des services Internet), il vous faut
également copier le script de lancement dans le répertoire /etc/rc.d/init.d

Installation à partir d'un binaire

Pour une application donnée, il existe peut être déjà une version binaire compilée pour votre processeur. Il ne
vous reste plus qu'à télécharger l'application, la décompresser puis la déplacer dans le répertoire de votre choix.
A noter que dans la désignation employée dans les distributions binaires : Intel−386 désigne un processeur Intel de
type 386, intel−486 de type 486, intel−586 de type Pentium, intel−686 de type Pentium II, etc…
Tout comme pour une installation à partir des sources vous devez ensuite lancer l'application et vérifier le
107
cas échéant si celle−ci est lancée au démarrage.

Installation à partir d'un paquetage rpm

RPM (Red Hat Package Manager) est un puissant gestionnaire d'applications permettant d'installer, de mettre à
jour, de vérifier ou de désinstaller des composants logiciels.

Pour installer un nouveau paquetage appli.rpm :

$ rpm −ivh appli.rpm

Attention, si vous installez un paquetage par cette méthode et qu'il existe déjà sur votre système dans une version
inférieure, vous risquez d'avoir des problèmes pour le désinstaller (voir plus bas). Les paramètres –vh
permettent d'ajouter une barre de progression.

Pour mettre à jour (upgrader) un paquetage :


$ rpm −Uvh appli.rpm

Pour supprimer un paquetage :


$ rpm −e appli.rpm

Afficher la liste de tous les paquetages installés :


$ rpm −qa

Vérifier à partir du nom si un paquetage est déjà installé :


$ rpm −qa | grep php

Lister le contenu d'un paquetage :


$ rpm −ql appli.rpm

Si vous avez besoin d'une application précise sous le format rpm, vous devriez pouvoir la trouver sans trop
de difficultés sur le site http://www.rpmfind.net.

Installation à partir d'un paquetage Debian


La distribution Debian utilise son propre système de paquetage dont les fichiers sont reconnaissables par l'extentions
.deb .

Pour gérer les paquetages il existe deux programmes :


dpkg apt−get

Pour simplifier, on peut considérer que apt est une surcouche sur dpkg.
La première chose à faire est de définir par quel moyen nous allons accèder aux paquetages, soit par CDROM soit
par une liaison réseau. Le programme apt−setup permet de configurer les sources de paquetage de manière
interactive.

Une autre manière possible est d'ajouter directement les informations dans le fichier /etc/apt/sources.list. Même si

108
on utilise les cdroms pour installer les paquetages il est quand même conseiller d'ajouter la ligne :deb
http://security.debian.org/ stable/updates main contrib non−free au fichier

/etc/apt/sources.list ce qui permet de télécharger les dernièrs paquetages qui corrigent des problèmes de
sécurité.
Après une modification de ce fichier il faut lancer la commande apt−get update pour que le système puisse
construire la base de données des paquetages en prenant en compte la nouvelle source.

Commandes usuelles :

apt−get install Nom_Du_Paquetage : Installe un nouveau paquetage


apt−get remove Nom_Du_Paquetage : Supprime d'un nouveau paquetage
dpkg −S nom_du_fichier : Donne le paquetage auquel appartient le fichier
dpkg −i nom_du_fichier : Installe le paquetage précédenment téléchargé
dpkg −L Nom_Du_Paquetage : Liste tous les fichier d'un paquetage
apt−get update : Mise à jour de la liste des paquetages
apt−get dist−upgrade : Mise à jour de tous les paquetages
dpkg−reconfigure Nom_de_Paquetage : reconfigure un paquetage déja installé apt−cache search
XXXXX : cherche XXXX dans le nom ou la description des paquetages disponibles:

La commande "apt-get -h" permettra d'avoir très vite une idée des commutateurs possibles.

Ainsi:

- apt-get update met à jour la liste des paquets disponibles liste dans le sources.list,
- apt-get install installe le(s) paquet(s) indiqué(s),
- apt-get remove supprime le(s) paquet(s) indiqué(s),

109
Quant à dpkg, c'est un outil d'installation; de création et de suppression de paquets Debian. Tout comme apt-get,
dpkg est contrôlé entièrement en ligne de commande et possède un frontend très pratique: "aptitude".

L'utilisation de dpkg demande quelques informations supplémentaires. L'utilisateur désirant l'utiliser pour
l'installation/suppression de paquets, devra lire le manuel associé ("man dpkg").

Une commande intéressante est notamment à noter: " dpkg -l" qui permet d'obtenir les liste des paquets
installés. Avec une sortie vers un fichier, cela devient très intéressant dans le cas d'administration de poste (" dpkg
-l > liste_des_fichiers.txt").

A propos de paquets RMP ou DEB


Par défaut chaque distribution à son type de paquet associé. Des outils permettent de faire la passerelle entre les
deux. Ainsi "Alien" sous Debian convertira les paquets RPM en DEB en une simple ligne de commande, aussi bien
que l'inverse pour une autre distribution.

 La commande à taper dans "alien" (au besoin installer Alien puis trouver cette commande à l'aide de "-?") est :

Faire fonctionner Office 2007 sous Ubuntu 10.10


Les alternatives libres à la suite Office de Microsoft, comme OpenOffice, sont de plus en plus avancées et
performantes et elles gèrent de mieux en mieux la plupart des formats propriétaires de Microsoft. Malgré ça, on
peut avoir besoin d’installer la suite Office.

Voici comment faire pour installer et faire fonctionner la suite Microsoft Office 2007 sous Ubuntu 10.10. Puisqu’il
n’existe pas de version de la suite d’Office compatible nativement avec Linux, il faut utiliser un outil capable
d’exécuter des programmes compilés pour Windows sous Linux. Le plus connu de ces outils est Wine, que je vais
utiliser ici.
110
Il existe des méthodes pour faire fonctionner Office avec PlayOnLinux. Je déconseille ces méthodes, elles n’ont pas
(ou mal) fonctionné chez moi.

La démarche décrite ici devrait être semblable pour d’autres versions d’Office et d’Ubuntu (de Linux plus
généralement) mais il est probable qu’il y ai tout de même quelques différences.

Tout d’abord, installer la dernière version de Wine :

sudo add-apt-repository ppa:ubuntu-wine/ppa


sudo apt-get update
sudo apt-get install wine1.3
Ensuite, il faut paramétrer Wine pour fonctionner en mode « Windows XP ». Aller dans Applications -> Wine ->
Configurer Wine -> Onglet Application et vérifier qu’il y a bien « Windows XP » dans le champ « Version de
Windows » (si ce n’est pas le cas, mettez-le).

On peut maintenant passer à l’étape d’installation d’Office. Insérez votre CD d’Office dans votre lecteur, faites un clic
droit sur le fichier « SETUP.EXE » -> Ouvrir avec Wine.

L’installation se déroule alors tout à fait normalement. Pensez à n’installer que les composants dont vous avez besoin.
Je n’ai testé que Word, Excel et Powerpoint. Il est possible que certains autres composants ne fonctionnent pas
correctement.

Pour faire fonctionner Powerpoint, il reste une manip’ à faire : allez dans Applications -> Wine -> Configurer Wine ->
Onglet Bibliothèques. Cherchez « riched20″ dans la liste « Nouveau remplacement pour » et cliquez sur
« Ajouter ». Ensuite, sélectionnez « riched20″, cliquez sur « Modifier » et choisissez « native Windows ».

111
Et voilà! Word, Excel et Powerpoint devraient fonctionner correctement :

Pour associer certains types de fichiers (comme les docx, les xlsx et les pptx, que OpenOffice a des fois du mal à
ouvrir) à Office, faites clic droit sur un fichier -> Ouvrir avec -> Autre application -> choisissez l’application
voulue. Les composants Office apparaissent plusieurs fois. Le 1er fonctionne chez moi. Cochez la case
« Mémoriser cette application….. » et cliquez sur « Ouvrir ».

Le fait que les composants Office apparaissent plusieurs fois est un bug connu. Une méthode pour le contourner est
disponible

Elements de réseaux
Pour mettre une machine en réseau mettre une machine en réseau : Les outils suivants sont indispensables à
connaître.
  ping,  ifconfig, route, netstat
  lsof: permet de lister les fichiers ouverts et les processus actifs.
  traceroute,  telnet, ftp, who, tcpdump, nmap, ntop, last, ssh

Fichiers de configuration du réseau et commandes de base  

112
Les fichiers de configuration

Le fichier /etc/hosts

Le fichier hosts donne un moyen d'assurer la résolution de noms, de donner un nom FQDN à un hôte

Exemple de fichier hosts

127.0.0.1 localhost localhost.localdomain


192.168.1.1 uranus.foo.org uranus

Le fichier /etc/networks

Il permet d'affecter un nom logique à un réseau

localnet 127.0.0.0
foo-net 192.168.1.0

Cette option permet par exemple d'adresser un réseau sur son nom, plutôt que sur son adresse.

route add foo-net au lieu de route add -net 192.168.1.0.

Le fichier /etc/host.conf

Il donne l'ordre dans lequel le processus de résolution de noms est effectué. Voici un exemple de ce que l'on peut
trouver dans ce fichier :

order hosts,bind

La résolution est effectuée d'abord avec le fichier hosts, en cas d'échec avec le DNS.

Le fichier /etc/resolv.conf

Il permet d'affecter les serveurs de noms.

Exemple

Nameserver 192.168.1.1
Nameserver 192.168.1.2
Nameserver 192.168.1.3

Ici le fichier déclare le nom de domaine et les 3 machines chargées de la résolution de noms.

Les fichiers de configuration des interfaces réseau

Vous trouverez ces fichiers dans /etc/network/interfaces. Voici un exemple qui contient 3 interfaces.

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)


# The loopback interface
# automatically added when upgrading

auto lo eth0 eth1


iface lo inet loopback

iface eth0 inet static


address 192.168.90.1
netmask 255.255.255.0

113
network 192.168.90.0
broadcast 192.168.90.255
gateway 192.168.90.1

iface eth1 inet static


address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

Les outils de l'administrateur réseau


La commande ifconfig

La commande ifconfig permet la configuration locale ou à distance des interfaces réseau de tous types d'équipements
(unité centrale, routeur). Sans paramètres, la commande ifconfig permet d'afficher les paramètres réseau des
interfaces.

La ligne de commande est :


ifconfig interface adresse [parametres].

Exemple : ifconfig eth0 192.168.1.2 (affecte l'adresse 192.168.1.2 à la première interface physique).

Voici les principaux arguments utilisés :


interface logique ou physique, il est obligatoire,

up active l'interface
down désactive l'interface
mtu définit l'unité de transfert des paquets
netmask affecter un masque de sous-réseau
broadcast définit l'adresse de broadcast
arp ou -arp activer ou désactiver l'utilisation du cache arp de l'interface
metric paramètre utilisé pour l'établissement des routes dynamiques, et déterminer
le “ coût ” (nombre de sauts ou
“ hops ”) d'un chemin par le protocole RIP.
multicast active ou non la communication avec des machines qui sont hors du réseau.

promisc ou -promisc activer ou désactiver le mode promiscuité de l'interface. En mode promiscuous, tous les
paquets qui transitent sur le réseau sont reçus également par l'interface. Cela permet de mettre en place un
analyseur de trame ou de protocole.

Description du résultat de la commande ifconfig eth0 :

1. eth0 Link encap:Ethernet HWaddr 00:80:C8:32:C8:1E


2. inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
3. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
4. RX packets:864 errors:0 dropped:0 overruns:0 frame:0
5. TX packets:654 errors:0 dropped:0 overruns:0 carrier:0
6. collisions:0
7. Interrupt:10 Base address:0x6100

Explications :
Ligne 1: l'interface est de type Ethernet. La commande nous donne l'adresse MAC de l'interface.

114
Ligne 2 : on a l'adresse IP celle de broadcast, celle du masque de sous-réseau
Ligne 3 : l'interface est active (UP), les modes broadcast et multicast le sont également, le MTU est de 1500 octets,
le Metric de 1
Ligne 4 et 5 : RX (paquets reçus), TX (transmis), erreurs, suppressions, engorgements, collision

Mode d'utilisation :

Ce paragraphe décrit une suite de manipulation de la commande ifconfig.

Ouvrez une session en mode console sur une machine.

1 - Relevez les paramètres de votre machine à l'aide de la commande ifconfig. Si votre machine n'a qu'une interface
physique, vous devriez avoir quelque chose d'équivalent à cela.

Lo Link encap:Local Loopback


inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:146 errors:0 dropped:0 overruns:0 frame:0
TX packets:146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0

eth0 Link encap:Ethernet HWaddr 00:80:C8:32:C8:1E


inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:864 errors:0 dropped:0 overruns:0 frame:0
TX packets:654 errors:0 dropped:0 overruns:0 carrier:0
collisions:0

Interrupt:10 Base address:0x6100

2 - Désactivez les 2 interfaces lo et eth0

ifconfig lo down
ifconfig eth0 down

3 - Tapez les commandes suivantes :


ping localhost
ping 192.168.1.1
telnet localhost

Aucune commande ne fonctionne, car même si la configuration IP est correcte, les interfaces sont désactivées.

4 - Activez l'interface de loopback et tapez les commandes suivantes :

ifconfig lo up /* activation de l'interface de loopback */


ping localhost ou telnet localhost /* ça ne marche toujours pas */
route add 127.0.0.1 /* on ajoute une route sur l'interface de loopback */
ping localhost ou telnet localhost /* maintenant ça marche */
ping 192.168.1.1 /* ça ne marche pas car il manque encore une route*/

On peut déduire que :

 pour chaque interface il faudra indiquer une route au protocole.


 dans la configuration actuelle, aucun paquet ne va jusqu'à la carte, donc ne sort sur le réseau.

Voici le rôle de l'interface loopback. Elle permet de tester un programme utilisant le protocole IP sans envoyer de paquets
sur le réseau. Si vous voulez écrire une application réseau, (telnet, ftp, ou autre), vous pouvez la tester de cette façon.

115
5 - Activez l'interface eth0 et tapez les commandes suivantes :

ifconfig eth0 up /* activation de l'interface */


route add 192.168.1.1
ifconfig /* l'information Tx/Rx de l'interface eth0 vaut 0 */
/* Aucun paquet n'est encore passé par la carte.*/
ping 127.0.0.1
ifconfig /* on voit que l'information Tx/Rx de lo est modifiée */
/* pas celle de eth0, on en déduit que les paquets */
/* à destination de lo ne descendent pas jusqu'à l'interface physique */
ping 192.168.1.1 /* test d'une adresse locale */
ifconfig /* Ici on peut faire la même remarque. Les paquets ICMP */
/* sur une interface locale, ne sortent pas sur le réseau */
/* mais ceux de l'interface lo sont modifiés*/
ping 192.168.1.2 /* test d'une adresse distante */
ifconfig /* Ici les paquets sont bien sortis. Les registres TX/RX de eth0 */
/* sont modifiés, mais pas ceux de lo */

6 -Réalisez les manipulations suivantes, nous allons voir le comportement de la commande ping sur les interfaces.

Sur la machine tapez la commande

192.168.1.1 ifconfig /* relevez les valeurs des registres TX/RX */


192.168.1.2 ping 192.168.1.1
192.168.1.1 ifconfig /* relevez les nouvelles valeurs des registres TX/RX */
/* il y a bien eu échange Réception et envoi de paquets*/
192.168.1.2 ping 192.168.1.3
192.168.1.1 ifconfig /* On voit que le registre Rx est modifié mais */
/* le registre Tx n'est pas modifié. La machine a bien reçu*/
/* le paquet mais n'a rien renvoyé */
192.168.1.2 ping 192.168.1.2
192.168.1.2 ifconfig /* aucun registre n'est modifié, donc les paquets */
/* ne circulent pas jusqu'à l'interface physique avec un ping*/
/* sur l'interface locale */

7 - le MTU (Message Transfert Unit) détermine l'unité de transfert des paquets.


Vous allez, sur la machine 192.168.1.1 modifier le MTU par défaut à 1500, pour le mettre à 300, avec la commande :

ifconfig eth0 mtu 300

Sur la machine d'adresse 192.168.1.2, vous allez ouvrir une session ftp et chronométrer le temps de transfert d'un
fichier de 30 MO. Relevez le temps et le nombre de paquets transmis ou reçus (commande ifconfig, flags TX/RX).

Restaurez le paramètre par défaut sur la première machine.


Refaites le même transfert et comparez les chiffres. La différence n'est pas énorme sur le temps car le volume de
données est peu important. Par contre la différence sur le nombre de paquets, elle, est importante.

La commande route
La commande route a déjà été entrevue un peu plus haut, avec la commande ifconfig. Le routage définit le chemin
emprunté par les paquets entre son point de départ et son point d'arrivée. Cette commande permet également la
configuration de pc, de switchs de routeurs.

116
Il existe 2 types de routages :

- le routage statique
- le routage dynamique.

Le routage statique consiste à imposer aux paquets la route à suivre.

Le routage dynamique met en oeuvre des algorithmes, qui permettent aux routeurs d'ajuster les tables de routage en
fonction de leur connaissance de la topologie du réseau. Cette actualisation est réalisée par la réception des
messages reçus des noeuds (routeurs) adjacents.

Le routage dynamique permet d'avoir des routes toujours optimisées, en fonction de l'état du réseau (nouveaux
routeurs, engorgements, pannes).

On combine en général le routage statique sur les réseaux locaux au routage dynamique sur les réseaux importants ou
étendus.
Un administrateur qui dispose par exemple de 2 routeurs sur un réseau, peut équilibrer la charge en répartissant un
partie du flux sur un port avec une route, et une autre partie sur le deuxième routeur.

Exemple de table de routage :

Kernel IP routing table


Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 2 eth0
127.0.0.0 * 255.0.0.0 U 0 0 2 lo
default 192.168.1.9 0.0.0.0 UG 0 0 10 eth0

Commentaire généraux  :

Destination : adresse de destination de la route


Gateway : adresse IP de la passerelle pour atteindre la route, * sinon
Genmask : masque à utiliser.
Flags : indicateur d'état (U - Up, H - Host - G - Gateway, D - Dynamic, M - Modified)
Metric : coût métrique de la route (0 par défaut)
Ref : nombre de routes qui dépendent de celle-ci
Use : nombre d'utilisation dans la table de routage
Iface : interface eth0, eth1, lo

Commentaire sur la 3ème ligne :

Cette ligne signifie que pour atteindre tous les réseaux inconnus, la route par défaut porte l'adresse 192.168.1.9. C'est
la passerelle par défaut, d'où le sigle UG, G pour gateway.

Ajout ou suppression d'une route :

route add [net | host] addr [gw passerelle] [métric coût] [netmask masque] [dev interface]

- net ou host indique l'adresse de réseau ou de l'hôte pour lequel on établit une route,
- adresse de destination,
- adresse de la passerelle,
- valeur métrique de la route,
- masque de la route à ajouter,

117
- interface réseau à qui on associe la route.

Exemples :

route add 127.0.0.1 lo /* ajoute une route pour l'adresse 127.0.0.1 sur l'interface lo */
route add -net 192.168.2.0 eth0 /* ajoute une route pour le réseau 192.168.2.0 sur l'interface eth0 */
route add saturne.foo.org /* ajoute une route pour la machine machin sur l'interface eth0 */
route add default gw ariane /* ajoute ariane comme route par défaut pour la machine locale */
/* ariane est le nom d'hôte d'un routeur ou d'une passerelle */
/* gw est un mot réservé */

route add duschmoll netmask 255.255.255.192

/* Encore un qui a créé des sous réseaux. Il s'agit ici d'une classe C */
/* avec 2 sous réseaux, il faut indiquer le masque. */

Suppression d'une route :

route del -net 192.168.1.0


route del -net toutbet-net

Warning

Attention, si on utilise des noms de réseau ou des noms d'hôtes, il faut qu'à ces noms soient associés les adresses de
réseau ou des adresses IP dans le fichier /etc/networks pour les réseaux, et /etc/hosts ou DNS pour les noms
d'hôtes.
Vous pouvez également voir l'atelier sur la mise en place d'un routeur logiciel.

La commande netstat

La commande netstat, permet de tester la configuration du réseau, visualiser l'état des connexions, établir des
statistiques, notamment pour surveiller les serveurs.

Liste des paramètres utilisables avec netstat :

Sans argument, donne l'état des connexions,


-a afficher toutes les informations sur l'état des connexions,
-i affichage des statistiques,
-c rafraîchissement périodique de l'état du réseau,
-n affichage des informations en mode numérique sur l'état des connexions,
-r affichage des tables de routage,
-t informations sur les sockets TCP
-u informations sur les sockets UDP.

Etat des connexions réseau avec netstat, dont voici un exemple :

Proto Recv-Q Send-Q Local Address Foreign Address State


Tcp 0 126 uranus.planete.n:telnet 192.168.1.2:1037 ESTABLISHED
Udp 0 0 uranus.plan:netbios-dgm *:*
Udp 0 0 uranus.plane:netbios-ns *:*

Active UNIX domain sockets (w/o servers)


Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] STREAM 1990 /dev/log
118
unix 2 [ ] STREAM CONNECTED 1989
unix 1 [ ] DGRAM 1955

Explications sur la première partie qui affiche l'état des connexions :

Proto : Protocole utilisé


Recv-q : nbre de bits en réception pour ce socket
Send-q : nbre de bits envoyés
LocalAdress : nom d'hôte local et port
ForeignAdress : nom d'hôte distant et port
State : état de la connexion
Le champ state peut prendre les valeurs suivantes:
Established : connexion établie
Syn snet : le socket essaie de se connecter
Syn recv : le socket a été fermé
Fin wait2 : la connexion a été fermée
Closed : le socket n'est pas utilisé
Close wait : l'hôte distant a fermé la connexion; Fermeture locale en attente.
Last ack : attente de confirmation de la fermeture de la connexion distante
Listen : écoute en attendant une connexion externe.
Unknown : état du socket inconnu

Explications sur la deuxième partie qui affiche l'état des sockets (IPC - Inter Processus Communication) actifs :

Proto : Protocole, en général UNIX,


Refcnt : Nombre de processus associés au socket
Type : Mode d'accès datagramme (DGRAM), flux orienté connexion (STREAM), brut (RAW), livraison fiable des
messages (RDM)
State : Free, Listening, Unconnected, connecting, disconnecting, unknown
Path : Chemin utilisé par les processus pour utiliser le socket.

Affichage et état des tables de routage avec netstat : netstat -nr ou netstat -r

Kernel IP routing table


Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 1500 0 0 eth0
127.0.0.0 * 255.0.0.0 U 3584 0 0 lo

Explications sur la commande netstat -r

Destination : adresse vers laquelle sont destinés les paquets


Gateway : passerelle utilisée, * sinon
Flags : G la route utilise une passerelle, U l'interface est active, H on ne peut joindre qu'un simple hôte par cette
route)
Iface : interface sur laquelle est positionnée la route.

Affichage de statistiques avec netstat -i

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
Lo 3584 0 89 0 0 0 89 0 0 0 BLRU
eth0 1500 0 215 0 0 0 210 0 0 0 BRU

Explications sur la commande netstat -i

RX-OK et TX-OK rendent compte du nombre de paquets reçus ou émis,


119
RX-ERR ou TX-ERR nombre de paquets reçus ou transmis avec erreur,
RX-DRP ou TX-DRP nombre de paquets éliminés,
RX-OVR ou TX-OVR recouvrement, donc perdus à cause d'un débit trop important.
Les Flags (B adresse de diffusion, L interface de loopback, M tous les paquets sont reçus, O arp est hors service, P
connexion point à point, R interface en fonctionnement, U interface en service)

Exercices  :

On donne les résultats de 3 commandes netstat ci-dessous, extraites de la même machine :

$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
198.5.203.0 0.0.0.0 255.255.255.0 U 1500 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 198.5.203.3 0.0.0.0 UG 1500 0 0 eth0

$ netstat

Active Internet connections (w/o servers)


Proto Recv-Q Send-Q Local Address Foreign Address State
Tcp 0 127 uranus.toutbet: telnet 194.206.6.143:1027 ESTABLISHED

$ netstat -i
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
Lo 3584 0 764 0 0 764 89 0 0 0 BLRU
eth0 1500 0 410856 0 0 33286 210 0 0 0 BRU

On demande :

1. Quels sont les noms et adresse de la machine consultée ?


2. Quel type de session est-elle en train de supporter ?
3. A quoi correspond l'adresse 198.5.203.3?
4. Pourquoi une interface porte-t-elle les Flags BLRU et l'autre BRU ?
5. Quelle est la taille des paquets utilisée par la passerelle par défaut ?

La commande traceroute

La commande traceroute permet d'afficher le chemin parcouru par un paquet pour arriver à destination. Cette
commande est importante, car elle permet d'équilibrer la charge d'un réseau, en optimisant les routes.

Voici le résultat de la commande traceroute www.nat.fr, tapée depuis ma machine.

traceroute to sancy.nat.fr (212.208.83.2), 30 hops max, 40 byte packets


1 195.5.203.9 (195.5.203.9) 1.363 ms 1.259 ms 1.270 ms
2 194.79.184.33 (194.79.184.33) 25.078 ms 25.120 ms 25.085 ms
3 194.79.128.21 (194.79.128.21) 88.915 ms 101.191 ms 88.571 ms
4 cisco-eth0.frontal-gw.internext.fr (194.79.190.126) 124.796 ms[]
5 sfinx-paris.remote-gw.internext.fr (194.79.190.250) 100.180 ms[]
6 Internetway.gix-paris.ft.NET (194.68.129.236) 98.471 ms []
7 513.HSSI0-513.BACK1.PAR1.inetway.NET (194.98.1.214) 137.196 ms[]
8 602.HSSI6-602.BACK1.NAN1.inetway.NET (194.98.1.194) 101.129 ms[]
9 FE6-0.BORD1.NAN1.inetway.NET (194.53.76.228) 105.110 ms []
10 194.98.81.21 (194.98.81.21) 175.933 ms 152.779 ms 128.618 ms[]
11 sancy.nat.fr (212.208.83.2) 211.387 ms 162.559 ms 151.385 ms[]

120
Explications  :

Ligne 0 : le programme signale qu'il n'affichera que les 30 premiers sauts, et que la machine www du domaine nat.fr,
porte le nom effectif de sancy, dans la base d'annuaire du DNS du domaine nat.fr. Cette machine porte l'adresse IP
212.208.83.2. Pour chaque tronçon, on a également le temps maximum, moyen et minimum de parcours du
tronçon.

Ensuite, on a pour chaque ligne, l'adresse du routeur que le paquet a traversé pour passer sur le réseau suivant.

Ligne 4 et 5, le paquet a traversé 2 routeurs sur le même réseau 194.79.190.


Ligne 4, 5, 6, 7, 8, 9, 11, on voit que les routeurs ont un enregistrement de type A dans les serveurs de noms, puisqu'on voit
les noms affichés.

Conclusion : depuis ma machine, chaque requête HTTP passe par 11 routeurs pour accéder au serveur
www.nat.fr.

L'accès sur cet exemple est réalisé sur Internet. Un administrateur, responsable d'un réseau d'entreprise sur lequel il y
a de nombreux routeurs, peut, avec cet outil, diagnostiquer les routes et temps de routage. Il peut ainsi optimiser
les trajets et temps de réponse.

La commande dig

La commande dig remplace ce qui était la commande nslookup. Cette commande sert à diagnostiquer des
dysfonctionnements dans la résolution de noms (Service DNS).

Utilisation simple de dig :

$ dig any freenix.org


; <<>> DiG 9.2.2 <<>> any freenix.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21163
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 3, ADDITIONAL: 3

;; QUESTION SECTION:
;freenix.org. IN ANY

;; ANSWER SECTION:
freenix.org. 92341 IN SOA ns2.freenix.org.\
hostmaster.freenix.org.\
2003042501\
21600\
7200\
3600000\
259200\

freenix.org. 117930 IN NS ns2.freenix.fr.


freenix.org. 117930 IN NS ns.frmug.org.
freenix.org. 117930 IN NS ns6.gandi.net.

;; AUTHORITY SECTION:
freenix.org. 117930 IN NS ns2.freenix.fr.
freenix.org. 117930 IN NS ns.frmug.org.
freenix.org. 117930 IN NS ns6.gandi.net.

;; ADDITIONAL SECTION:
ns2.freenix.fr. 16778 IN A 194.117.194.82
ns.frmug.org. 40974 IN A 193.56.58.113
ns6.gandi.net. 259119 IN A 80.67.173.196

;; Query time: 197 msec


;; SERVER: 213.36.80.1#53(213.36.80.1)
121
;; WHEN: Tue May 27 15:16:23 2003
;; MSG SIZE rcvd: 248

retourne les informations sur le domaine concerné.

Il est ensuite possible d'intérroger sur tout type d'enregistrement : SOA, MX, A, CNAME, PTR...

La commande host

La commande host interroge les serveurs de noms. Elle peut par exemple être utilisée pour détecter des
dysfonctionnements sur un réseau (serveurs hors services). Attention, n'utilisez pas cette commande sur des
réseaux dont vous n'avez pas l'administration.

PRESENTATION DE WEBMIN
Webmin est un logiciel permettant la gestion d'un poste Linux au travers d'une interface Web.

Sous Debian
 Pour installer Webmin des lignes devront être ajoutées à "/etc/apt/sources.list",
- deb http://ftp.fr.debian.org/debian/ etch main
- deb-src http://ftp.fr.debian.org/debian/ etch main
- deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
- deb-src http://ftp.fr.debian.org/debian/ stable main contrib non-free

 Mettre à jour apt-get ("apt-get update"),

 Télécharger le paquet Webmin, dans le dossier /tmp,


cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/webadmin/webmin_1.510-2_all.deb

C Configurer l'outilnécessaires
 Installer les paquets d'administration Webmin
au fonctionnement de Webmin,
apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl apt-
show-versions

1. Installer
Télécharger le paquet debian
webmin, de Webmin sur le site de Webmin
dpkg -i webmin_1.510-2_all.deb
2. Ouvrir le paquet avec "Installeur de paquets GDebi" (cliquer sur le paquet avec le bouton droit) ce qui
installera en même
 Il est possible tempscourant)
(même les dépendances nécessaires
de rencontrer des erreurs lors d'installation suivre alors les indications:
apt-get -f install
3. Dans un navigateur (Firefox) taper http://localhost:10000
le système demandera http://localhost:10000, en mode sécurisé https://localhost:10000
malheureusement l'exception de sécurité pour firefox ne semble pas possible avec l'adresse
127.0.0.1, il sera nécessaire d'utiliser l'adresse IP fournie par le serveur DHCP, donc utiliser par exemple
https://172.16.8.32:10000 (l'adresse exacte est visible soit en utilisant ifconfig en ligne de commande,
soit via "informations de connexion", clic droit sur l'icône des connexions filaires dans la barre de
menu)

 on ouvrira une session sous le nom root, mot de passe tournesol


 Configuration de Webmin
 On pourra changer la langue des messages
 On pourra interdire les connexions à partir d'une autre adrese que l'adresse 127.0.0.1
 cependant si l'exception de sécurité ne permet pas de se connecter avec 127.0.0.1 en https,
on devra désactiver SSL, et ensuite n'autoriser que 127.0.01 comme adresse du client
122
 Webmin présente un certain nombre de modules classés dans différents menus, et d’autres modules non
utilisés qui correspondent à des applications non encore installées sur le serveur.
123
 Il est possible que le chemin de connexion à Webmin soit http://adresse_ip:1000 ou encore http://localhost:10000
 Se connecter sur Webmin en utilisant le compte root avec son mot de passe.

Installation du serveur http (Apache), de son serveur de page dynamique (PHP), du


serveur de base de données Mysql et de son gestionnaire (PhpMyAdmin)

 Installer le serveur http Apache (si ce n'est pas fait):


apt-get install apache2
rmp -i apache
urpmi apache
yum install httpd
yast -i apache2

 Installer le serveur php - mysql:


apt-get install php4 php5 mysql-common mysql-client mysql-server
urpmi php4 php5 mysql-common mysql-client
yast install php mysql

 Installer PhpMyAdmin:
apt-get install phpmyadmin

 La distribution telle que Suse n'est pas destinée pour une installation comme serveur mais comme poste de travail.
Les administrateurs se dirigeront vers des distributions telles que Debian ou Redhat pour un cet emploi.
Phpmyadmin bien qu'installable sur Mandriva ou Suse demande l'ajout de dépôts, téléchargements... ce qui dépasse un
peu le sujet de ces exercices.

Un navigateur dans votre interpréteur de commande


 Installer lynx:
apt-get install lynx
rmp -i lynx
yast -i lynx
...
 Il peut être intéressant depuis l'interpréteur de commande d'accéder à une page web. Lynx est un navigateur en mode
texte. Pour le tester:
lynx debian.fr

124
 L'interpréteur de commande sh, bash ou tout autre shell paraît souvent de prime abord comme difficile à utiliser.
Très vite, on constate que:
- Seules quelques dizaines de commandes sont utilisées,
- Les tâches, comme tout domaine d'administration sont souvent répétitives,
- Les éditeurs de texte sont nombreux (vi, joe, vim, ed, emacs...) mais l'utilisateur, une fois son choix effectué, se
imite souvent à un seul. Il en est de même pour les autres programmes (dont l'interpréteur de commande) ce qui
diminue très vite cette multitude de commandes,
- Il est impossible de tout connaître, --help, -?, man... (Qui sera abordé plus tard) sont là pour aider!

INTRODUCTION A SAMBA

TP de synthèse SAMBA
Inter-opérabilité des systèmes : SAMBA en serveur de fichiers

Contexte

FLANDRE-IMMO, PME d’une dizaine de salariés, dispose d’un réseau hétérogène comportant plusieurs OS :
Mac OS, windows XP, Vista et Seven. La cohabitation de ces différents OS pose quelques problèmes et le
Responsable de l’Informatique souhaite réorganiser son Système. Vous êtes sollicité pour réaliser l’inter-
opérabilité des systèmes Linux et Windows notamment.
Dans une première phase, il vous faut tester les possibilités offertes dans une architecture de réseau hétérogène
composée de deux stations de travail sous Windows (XP, Vista ou autre) et Linux ubuntu.

L’objectif de cette synthèse est de permettre la gestion des accès limités à des partages mis en place sur le serveur
linux merlin à partir de stations sous windows. L’architecture de test sera donc réduite à un poste Linux et un
poste Windows quelconque).

merlin winXP

PARTAGES

192.168.1.0/24 Vista

Groupes d’utilisateurs et membres


-admins  : philippe, jean
-commerciaux  : berthe, jacques, martine
-gestionRH : albert, vincent

Ressources à partager et droits d’accès


-commun : accessible à tous en lecture/écriture
-dispo  : admins ou commercianx en lecture/écriture
125
gestion en lecture seule
-ventes : berthe et admins en lecture/écriture
-perso : gestion en lecture/écriture

Travail à faire
** On pourra s’inspirer des docs du site http://www.tsoungui.fr (Pingu-Land) et bien d’autres comme
http://www.samba.org/samba/docs/man/Samba-Guide/

1-Créer les utilisateurs linux et samba.


2-Créer les ressources à partager dans /home/samba 
3-Créer les groupes d’utilisateurs et y insérer les membres désignés.
4-Gérer les droits d’accès spécifiés et tester les accès.
5-Rendre les sous-répertoires de /home visibles dans le « voisinage réseau » de la machine windows.
6-Définir un partage « printer » de l’imprimante locale de merlin (même si elle n’est pas physiquement connectée).

NB : pour toutes les tâches à accomplir, vous apporterez la preuve de leur réalisation par la présentation des
contenus des fichiers de configuration, /etc/passwd, /etc/group, smb.conf, etc et des captures d’écran diverses
pour illustrer votre compte-rendu.

TP introduction à SSH
126
Le service ssh

sshd est un serveur qui permet de communiquer de façon sécurisée, en établissant un canal de


communication entre lui et ses clients

 Installation : apt-get install ssh


allow SSH protocol 2 only --> yes
installer /usr/lib/ssh-keysign en SUID root ? --> yes
 Il fonctionne seul (et non comme telnet et ftp sous la dépendance du super-serveur inetd ou xinetd)
et écoute les requêtes que lui adressent les clients d'habitude au port 22 (voir grep ssh /etc/services)
 Votre serveur sshd est-il actuellement en exécution sur votre machine ? Comment feriez-vous pour
arrêter ou démarrer ce service ?
 Plus généralement, pour connaitre TOUS les serveurs réseaux à l'écoute, et ceux qui sont actifs,
utilisez netstat -atn (ou netstat -at). Plus d'infos : consulter le man(ual)
 Utiliser last | less sur votre machine locale pour connaitre les clients qui se sont connectés
récemment sur votre serveur sshd
 Problème rencontré
En cas de changement dans la correspondance client-serveur (par ex. changement de disque sur
l'une des machines, pour le meme nom ou la meme adresse IP), les clés ne corrrespondant plus, la
connexion est refusée par sécurité.
Pour passer outre, intervenir dans le fichier $HOME/.ssh/know_hosts et supprimer la ligne
décrivant la connexion au serveur.

Session de travail cliente

1. Pour en savoir plus sur le serveur ssh, consulter man ssh. Les fichier de configuration sont placés
dans /etc/ssh
2. Syntaxe : ssh login@serveur, login étant un compte valide défini sur serveur. 
A la place du nom du serveur, utiliser l'adresse IP, s'il y a une difficulté de résolution des noms ( ou
renseigner le fichier /etc/hosts)

o Connectez-vous au compte stage/stg du serveur voisin.


o On se retrouve dans la même situation qu'avec telnet,
o on peut prendre le controle à distance en tant que login
o
o ouvrir une session root sur le serveur, avec la commande su, mais
o attention ! respectez l'environnement
o
o Y passer quelques commandes (sans rien abimer !).

o en particulier créer un compte (login/mot de passe) sur cette machine voisine.


o
o Pour sortir de la session de travail ssh, taper exit
o

3. Application à la gestion de serveurs distants sur SAMBAEDU3

127
1. Se connecter sur un serveur ssh distant comme admin/fctice
2.
3. Y ouvrir une session root
4.
5. Les serveurs httpd (apache) et mysqld sont-ils en fonctionnement ?
6. Eventuellement les arreter et les démarrer.
7.
8. S'y connecter comme root de mysqld (mysql -u root -p).
9. Examiner les bases existantes (show databases;)
10.
11. Y créer une nouvelle base de données (mysql> create database cdi)
12.
13. Se déconnecter de mysqld, puis de la session superviseur, puis de ssh
14.

Clients Windows

1. putty : installer ce client telnet et ssh, ouvrir une session ssh comme stage/stg et lancer mc (exit
pour terminer)
2. winscp 3.3 : client ssh sous licence GPL, c'est un véritable explorateur d'une machine Linux. Au
moment de l'installation, choisir le style Norton.

Se connecter comme stage/stg et explorer le système de fichiers


Faire des transferts de fichiers
Puis se connecter comme root (attention !)

Transfert de fichiers par scp

scp (secure copy), permet de copier des fichiers et des arborescences, en utilisant ssh pour sécuriser les
transferts

1. syntaxe générale: 
scp [-pr] source destination, où source et destination désigne l'ensemble des fichiers à copier ou
le répertoire d'accueil.
Si les fichiers sont locaux, on utilise la syntaxe habituelle.
S'ils sont distants, la notation est celle de ssh : user@serveur:fichiers
L'option -p permet de préserver les droits et les dates des fichiers dans les copies.
2. Exemples :
scp -r user@serveur:fichiers  rep-local , pour copier du serveur distant les fichiers vers le
répertoire rep d'accueil local
scp -r fichiers-locaux  user@serveur:rep , pour copier les fichiers locaux vers le répertoire situé sur
le serveur distant
3. Effectuez les copies suivantes, en expliquant ce qui est fait. Vérifiez les résultats
4. [stage@p0x]$ scp /etc/services stage@p0y:/home/stage/
5. [stage@p0x]$ scp stage@p0y:/etc/passwd /home/stage/
6. stage crée le répertoire d'accueil chez lui sur p0x. La copie se fait sur p0y, de p0y vers p0x
7. [stage@p0x]$ cd /home/stage ; mkdir tmp
8. [stage@p0y]$ scp -r /usr/share/doc/bash-doc stage@p0x:/home/stage/tmp/
9. Copier le fichier /usr/share/webmin0.92.tar.gz présent sur la station p10 dans /usr/local/ de
votre station.
10.Sauriez vous "rebondir", sur une 3ème machine ?

128
Exécuter des applications graphiques distantes (export display)

On a vu comment "prendre" la main sur une console distante avec ssh, et faire exécuter à distance des
applications.
On peut également faire afficher sur une console graphique cliente, des applications qui s'exécutent sur le
serveur X d'une machine distante.
Si les serveur et client sont convenablement configurés, on peut directement exécuter l'application
distante par ssh avec l'option -X. Pour cela, le serveur distant doit avoir la directive X11Forwarding
yes dans/etc/ssh/sshd_config, et le client local doit comporter la directive ForwardX11
yes dans /etc/ssh/ssh_config.
[user@client]$ ssh -X login@serveur
[login@serveur]$ quanta &

# ou on peut utiliser ssh juste pour passer les commandes


# pour autoriser à utiliser le serveur X
[user@client]$ xhosts +
[user@client]$ ssh login@serveur
[login@serveur]$ export DISPLAY=iplocal:0.0
[login@serveur]$ xclock &   # pour essayer
[login@serveur]$ konqueror &   # pour travailler

Utiliser des clés de cryptage asymétrique pour l'authentification

1. Principe en bref

Il est possible de s'authentifier sur un serveur ssh une fois par session de travail (habituellement
c'est à chaque commande). Pour cela on utilise l'identification par "agent" (c'est un petit logiciel
résidant). C'est celui-ci qui s'occupe de transmettre les informations d'identification à chaque accès
ssh en utilisant des couples clé privée / clé publique.
L'identification par clés asymétriques met en place 3 fichiers que l'agent utilisera :

o ~/.ssh/id_rsa : la clé privée qui permet de décrypter l'information et de s'identifier (en


fournissant la "passphrase")
o ~/.ssh/authorized_keys : la liste des clés publiques autorisées à accéder au compte de
l'utilisateur.
o ~/.ssh/id_rsa.pub : la clé publique (qui sert à crypter). C'est le fichier à transmettre à
quiconque nous autorise à utiliser son compte, le contenu étant ajouté dans son fichier
personnel authorized_keys.
2. Contexte des manipulations

Localement, sur le poste de travail, nous sommes connectés sous le compte moi, et nous voulons
établir ouvrir une session de travail au nom de l'utilisateur stage sur un seveur ssh distant.

3. Se connecter comme moi sur la machine cliente

Générer une paire de clés :


ssh-keygen -t rsa
- entrer le fichier ( défaut : /home/moi/.ssh/id_rsa)
- entrer une phrase (fctice 2 fois)
the key fingerprint is :
da:cd:9c:da:cb:a5:16:d2:cd:ff:64:09:64:24:fc:4a moi@localhost

4. Résultat

129
On constate la génération dans /home/stage/.ssh/
- de la clé privée correspondante dans le fichier id_rsa
(droit 600) - de la clé publique dans id_rsa.pub (droit 644)

5. Transférer la clé publique sur les serveurs


ssh-copy-id -i id_rsa.pub stage@ip
Ce qui crée le fichier ~/.ssh/authorized_keys sur la machine "serveur" d'adresse ip
Comparer son contenu avec celui du fichier local id_rsa.pub

6. Test

A chaque connexion sur la machine distante, ssh demande la "passphrase" qui a servi à crypter la
clé privée
$ ssh stage@ip
Enter pssphrase for key '/home/moi/.ssh/id_rsa' --> fctice
stage@ip:~$

7. Utiliser ssh-agent
$ ssh-agent screen
$ ssh-add
Enter passphrase for /home/moi/.ssh/id_rsa:
--> fctice
Identity added: /home/jean/.ssh/id_rsa (/home/jean/.ssh/id_rsa)
(l'agent a enregistré notre clé, et s'occupe désormais des demandes de connexion à notre
place !)
$ ssh stage@ip
stage@ip:~$
--> établissement de la session de travail directement !
exit
logout
Connection to ip closed.
$ ssh stage@ip
stage@ip:~$

8. Mécanisme

L'utilisation de "l'agent" revient à ce que nous lui déléguions la tâche de nous représenter dans les
phases d'authentication. Il faut pour cela lui fournir une fois par session de travail la phrase de
passe qui protège notre clé privée. Par la suite, quand nous essayons d'établir une connection ssh, la
machine distante envoit un message codé avec notre clé publique (contenue dans authorized_keys),
si nous pouvons le décoder (grâce à notre clé privée), alors la machine distante nous considère
comme bien authentifié
Tant que la console est ouverte la surveillance par ssh-agent s'exerce !

130
UNIX / LINUX : QUELQUES NOTES
UTILES

131
132
133
134

Vous aimerez peut-être aussi