Académique Documents
Professionnel Documents
Culture Documents
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 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.
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).
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 :
Temps partagé : c’est-à-dire que les ressources du processeur et du système sont réparties entre
les utilisateurs.
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.
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)
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
Il existe de nombreux SGF. On peut citer, en vrac, NTFS, FAT32, ext4, HFS,
FFS, etc.
13
d'un nouveau système afin de préparer le support à recevoir les données.
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
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:.
Les tailles choisies peuvent être évidemment modifiées selon vos besoins.
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.
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.
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.
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.
2.5 Récapitulatif
1. Une partition est une partie logique d'un disque dur. Un disque
dur peut contenir 4 partitions primaires au maximum.
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é.
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 .
Directement avoir avoir booté sur le CD contenant Ubuntu, une première fenêtre
apparait et vous demande de choisir votre langue.
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.
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...
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 :
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.
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.
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.
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.
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.
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.
27
On remarquera notamment que les partitions portent désormais leurs noms :
sda1, sda2, etc.
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.
Maintenant que votre disque dur est prêt, nous pouvons passer à l'installation des
systèmes d'exploitation.
28
4 Installation des systèmes
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.
Nous n'allons pas rappeler comment installer Windows puisqu'il existe déjà
un tutoriel complet dédié à l'installation de Windows 7.
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 :
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.
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.
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
Commande d'administration
Commandes Administration
Messages Système
La gestion des processus
Éditer un fichier avec VI
Recherche, analyse, modification
32
Se déplacer dans les répertoires (Change 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
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
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.
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/
Archivage
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
Redirection
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) :
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
Démarrer et arrêter
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)
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).
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.
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.
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.
/etc/passwd
/usr/c2/projet/fichA
Chemin d’accès absolu = se réfère à la racine “/” –> similaire quelque soit le répertoire courant
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.
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.
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 :
Exemple
xstra> pwd
/home/ xstra
xstra>
cd Change Directory
Permet de changer de répertoire de travail.
Exemple
Exemple
45
Exemple
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
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
xstra> cd /home/xstra
xstra> ls
bin develop essai 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
locate
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
48
cp CoPy
Cette commande permet la copie de fichiers. Elle s’utilise sous
quatre formes :
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.
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>
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>
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>
Exemple
Recherche de la chaîne de caractères beaux dans le fichier essai.
xstra> grep beau essai
Il fait beau
xstra>
exemple :
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 :
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 :
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".
-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
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>
/usr/man
/usr/local/man
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$’
53
Répertoires standards :
Répertoires système :
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
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..
$ mkdir /home/philippe
$ cp /etc/skel/* /home/philippe
$ chown philippe /home/philippe
$ chgrp le_groupe_de_philippe /home/philippe
56
Syntaxe : useradd nom−utilisateur −g groupe −d répertoire−personnel
−m
$ userdel −r philippe
L'option −r permet de supprimer le répertoire personnel de l'utilisateur à
supprimer.
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).
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.
Manipulations
58
4. Supprimer sans regret le compte de totox. Son rép. personnel a t-il été
supprimé ?
Remarques
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.
59
Supprimer un groupe, au hasard.. encore totox.
groupdel totox
Le groupe est supprimé du fichier /etc/group.
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 :
Travaux Pratiques
Création de 2 groupes
groupadd group1
groupadd group2
cat /etc/group
...
group1:x:1001:
group2:x:1002:
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
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
Structure de /etc/passwd
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
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 ?
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 :
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 passwd
Options
Commande id
uid=501(stage1) gid=501(stage1) groups=501(stage1), 504(stagiaire)
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 :
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.
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 :
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 !
Groupe
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).
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
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).
À 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
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.
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).
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
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.
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>
Exemples
Soit un fichier f1 dans le répertoire xstra1.
1) Le répertoire xstra1 appartenant à l’utilisateur xstra1 a les protections
suivantes :
drwx
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 :
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
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 :
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 :
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
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
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
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.
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.
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.
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 :
La commande stat permet d'obtenir une information plus poussée sur un fichier.
77
Exemple : stat /etc/passwd
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
Passer les commandes cd / puis ls -l, pour lister les répertoires situés à la racine.
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.
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 :
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).
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 :
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).
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;
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
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
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
83
ls -l test
-rwxrw-r--
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
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
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-------
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.
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
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 :
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)
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
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).
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
Commande pstree :
La commande pstree permet d'afficher les processus sous forme d'arborescence : pratique pour voir les
dépendances entre processus.
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 :
[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 :
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 :
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 :
Question 13 :
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
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.
ext2 : filesystem Linux ; msdos : disque de type MS−DOS ; vfat : disque de type Windows ;
iso9660 : CD−ROM ;
Exemples :
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
95
L'ajout d'un périphérique dans le fichier /etc/fstab permet de le monter automatiquement au démarrage.
Lancez fdisk
4 Lancer ainsi la commande vous affiche la liste des différents disques et
partitions de votre système.
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é.
97
Votre disque Windows sous Linux
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 :
99
100
TP Partitionnement
Préalable
A vous !
!!! 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
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
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.
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.
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.
!!! 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.
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.
102
Démontez toutes les partitions que vous venez de monter. Nous allons créer le montage
automatique.
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
15) Ensuite, redémarrez votre machine et vérifiez que le système monte bien toutes les partitions
automatiquement.
16) Démontage
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.
19) Maintenant, démontez votre partition de /truc et montez là en tant que /home
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.
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 ?
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
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.
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.
105
INSTALLATION DE LOGICIELS
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.
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.
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 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.
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
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.
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.
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.
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.
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 :
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").
La commande à taper dans "alien" (au besoin installer Alien puis trouver cette commande à l'aide de "-?") est :
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.
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
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
Le fichier /etc/networks
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.
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
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.
Vous trouverez ces fichiers dans /etc/network/interfaces. Voici un exemple qui contient 3 interfaces.
113
network 192.168.90.0
broadcast 192.168.90.255
gateway 192.168.90.1
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.
Exemple : ifconfig eth0 192.168.1.2 (affecte l'adresse 192.168.1.2 à la première interface physique).
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.
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 :
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.
ifconfig lo down
ifconfig eth0 down
Aucune commande ne fonctionne, car même si la configuration IP est correcte, les interfaces sont désactivées.
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 :
6 -Réalisez les manipulations suivantes, nous allons voir le comportement de la commande ping sur les interfaces.
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).
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 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.
Commentaire généraux :
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.
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é */
/* 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. */
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.
Explications sur la deuxième partie qui affiche l'état des sockets (IPC - Inter Processus Communication) actifs :
Affichage et état des tables de routage avec netstat : netstat -nr ou netstat -r
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
Exercices :
$ 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
$ 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 :
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.
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.
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).
;; QUESTION SECTION:
;freenix.org. IN ANY
;; ANSWER SECTION:
freenix.org. 92341 IN SOA ns2.freenix.org.\
hostmaster.freenix.org.\
2003042501\
21600\
7200\
3600000\
259200\
;; 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
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
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)
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.
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
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/
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
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)
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.
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 &
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 :
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.
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)
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