Découverte Linux

publicité
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
DECOUVERTE DE LINUX
A/ INTRODUCTION
1/ Historique et génèse de Linux
Linus B.Torvalds est à l'origine de ce système d'exploitation entièrement libre. Au début des
années 90, il voulait mettre au point son propre système d'exploitation pour son projet de fin
d'étude. Linus Torvalds avait pour intention de développer une version d'UNIX pouvant être
utilisé sur une architecture de type 80386. Le premier clone d'UNIX fonctionnant sur PC a été
Minix, écrit par Andrew Tanenbaum, un système d'exploitation minimal pouvant être utilisé sur
PC. Linus Torvalds décida donc d'étendre les possibilités de Minix, en créant ce qui allait devenir
Linux. Amusées par cette initiative, de nombreuses personnes ont contribué à aider Linus
Torvalds à réaliser ce système, si bien qu'en 1991 une première version du système a vu le jour.
C'est en mars 1992 qu'a été diffusée la première version ne comportant quasiment aucun bug.
Avec le nombre croissant de développeurs travaillant sur ce système, celui-ci a rapidement pu
intégrer des redéveloppements libres des outils présents sous les systèmes UNIX commerciaux.
De nouveaux outils pour Linux apparaissent désormais à une vitesse vertigineuse.
L'originalité de ce système réside dans le fait que Linux n'a pas été développé dans un but
commercial. En effet aucune ligne de code n'a été copiée des systèmes UNIX originaux (en effet
Linux s'inspire de nombreuses versions d'UNIX commerciales: BSD UNIX, System V.). Ainsi,
tout le monde, depuis sa création, est libre de l'utiliser mais aussi de l'améliorer.
2/ Notions de noyau et de distribution
Linux est architecturé autour d'un noyau (en anglais kernel) chargé de prendre en charge le
matériel. On appelle distribution l'assemblage d'un ensemble de logiciels autour d'un noyau Linux
afin de fournir un système clé en main. Le noyau d'une distribution peut-être mis à jour afin de
permettre la prise en compte de matériels récents, toutefois cette manipulation consistant à
recompiler le noyau est délicate car elle nécessite un certain niveau de connaissance du système
et du matériel. La recompilation du noyau est à réserver aux spécialistes ou bien aux utilisateurs
prêts à rendre inutilisable leur système dans le but d'apprendre.
La plupart des distributions proposent également une installation graphique qui leur est propre
ainsi qu'un système de gestion de paquetages permettant d'installer automatiquement des
logiciels en gérant les dépendances (les logiciels sous Linux sont parfois liés à des librairies
externes ou s'appuient sur d'autres logiciels).
Chaque distribution possède ses avantages et ses inconvénients. En effet si certaines sont plus
adaptées à des débutants et proposent des interfaces graphiques évoluées, d'autres privilégient
la sécurité ou l'évolutivité. Les distributions les plus connues sont:






La distribution
La distribution
La distribution
La distribution
La distribution
La distribution
RedHat ;
Debian ;
SuSe ;
Knoppix ;
Slackware ;
Mandriva.
Page 1 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
3 Les caractéristiques du système
Linux est un système d'exploitation proche des systèmes UNIX pouvant être exécuté sur
différentes plates-formes matérielles : x86 (c'est-à-dire des plates-formes à base de
processeurs Intel, AMD, etc.), Sparc, PowerPC, Alpha, ARM, etc. Ainsi le système Linux peut
fonctionner aussi bien sur des ordinateurs personnels que des consoles de jeu ou des assistants
personnels !
Linux est ainsi un système multi plate-forme. Il est également multi-utilisateurs (plusieurs
personnes peuvent en même temps travailler sur le même ordinateur), mais aussi multi-tâches
(plusieurs applications peuvent être lancées en même temps sans qu'aucune n'affecte les autres)
et multi-processeurs.
Linux est considéré comme un système fiable, robuste et puissant. Il est d'ailleurs capable de
fonctionner avec très peu de ressources sur des ordinateurs bas de gamme très peu puissants.
Le système Linux possède notamment les avantages suivants :




Le support des standards de l'internet, c'est-à-dire des protocoles TCP/IP, la famille de
protocoles utilisée sur Internet. Linux est donc un moyen gratuit de créer un réseau
local, de se connecter à Internet et de mettre en place un serveur.
Une sécurité accrue due à la transparence de son code source et de la réactivité de la
communauté lors des annonces de vulnérabilités.
Un cloisonnement des espaces mémoire et de l'espace disque couplé à une gestion pointue
des droits permettant de gérer un grand nombre d'utilisateurs avec un niveau de risque
minimal.
Un noyau entièrement configurable en fonction du matériel de la machine sur laquelle le
système est installé afin de maximiser les performances.
4 Le système X
X est une interface graphique, qui a été développée au MIT, permettant de créer des
applications graphiques fonctionnant sur diverses plateformes.
X-Window est l'interface graphique des stations UNIX. X-Window est en quelque sorte aux
systèmes Unix ce que l'interface Windows est au DOS (n'allez surtout pas dire X-windows au
risque de vous faire massacrer par un fanatique d'UNIX). L'avantage majeur de ce système est
l'utilisation d'une interface graphique en complément à certaines commandes.
Sous Linux il existe une implémentation libre du système X-Window appelée XFree86. XFree86
supporte un nombre très important de cartes vidéos, mais certaines ne sont pas supportées.
Toutefois avec la communauté du libre, le portage des pilotes des nouvelles cartes graphiques est
de plus en plus rapide !
Page 2 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
B/ LE SHELL
1/ Introduction au shell
L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation,
d'où son nom anglais «shell», qui signifie «coquille».
Le shell est ainsi chargé de faire l'intermédiaire le système d'exploitation et l'utilisateur grâce
aux lignes de commandes saisies par ce dernier. Son rôle consiste ainsi à lire la ligne de
commande, interpréter sa signification, exécuter la commande, puis retourner le résultat sur les
sorties.
Le shell est ainsi un fichier exécutable chargé d'interpréter les commandes, de les transmettre
au système et de retourner le résultat. Il existe plusieurs shells, les plus courants étant sh
(appelé «Bourne shell»), bash («Bourne again shell»), csh («C Shell»), Tcsh («Tenex C shell»), ksh
(«Korn shell») et zsh («Zero shell»). Leur nom correspond généralement au nom de l'exécutable.
Chaque utilisateur possède un shell par défaut, qui sera lancé à l'ouverture d'une invite de
commande. Le shell par défaut est précisé dans le fichier de configuration /etc/passwd dans le
dernier champ de la ligne correspondant à l'utilisateur. Il est possible de changer de shell dans
une session en exécutant tout simplement le fichier exécutable correspondant, par exemple :
/bin/bash
2/ Invite de commande (prompt)
Le shell s'initialise en lisant sa configuration globale (dans un fichier du répertoire /etc/), puis
en lisant la configuration propre à l'utilisateur (dans un fichier caché, dont le nom commence par
un point, situé dans le répertoire de base de l'utilisateur, c'est-à-dire
/home/nom_de_l_utilisateur/.fichier_de_configuration), puis il affiche une invite de commande
(en anglais prompt) comme suit :
machine:/repertoire/courant$
Par défaut dans la plupart des shells le prompt est composé du nom de la machine, suivi de deux
points (:), du répertoire courant, puis d'un caractère indiquant le type d'utilisateur connecté :


«$» indique qu'il s'agit d'un utilisateur normal
«#» indique qu'il s'agit de l'administrateur, appelé «root»
Page 3 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
3/ Notion de ligne de commande
Une ligne de commande est une chaîne de caractère constituée d'une commande, correspondant à
un fichier exécutable du système ou bien d'une commande du shell ainsi que des arguments
(paramètres) optionnels :
ls -al /home/jf/
Dans la commande ci-dessus, ls est le nom de la commande, -al et /home/jean-francois/ sont des
arguments. Les arguments commençant par - sont appelés options. Pour chaque commande il
existe généralement un certain nombre d'options pouvant être détaillées en tapant une des
commandes suivantes :
commande --help
commande -?
man commande
4/ Entrées-sorties standard
Lors de l'exécution d'une commande, un processus est créé. Celui-ci va alors ouvrir trois flux :



stdin, appelée entrée standard, dans lequel le processus va lire les données d'entrée. Par
défaut stdin correspond au clavier ; STDIN est identifié par le numéro 0 ;
stdout, appelée sortie standard, dans lequel le processus va écrire les données de sortie.
Par défaut stdin correspond à l'écran ; STDOUT est identifié par le numéro 1 ;
stderr, appelée erreur standard, dans lequel le processus va écrire les messages
d'erreur. Par défaut stderr correspond à l'écran. STDERR est identifié par le numéro 2 ;
Par défaut lorsque l'on exécute un programme, les données sont donc lues à partir du clavier et
le programme envoie sa sortie et ses erreurs sur l'écran, mais il est possible de lire les données à
partir de n'importe quel périphérique d'entrée, voire à partir d'un fichier et d'envoyer la sortie
sur un périphérique d'affichage, un fichier, etc.
5/ Redirections
Linux, comme tout système de type Unix, possède des mécanismes permettant de rediriger les
entrées-sorties standards vers des fichiers.
Ainsi, l'utilisation du caractère " > " permet de rediriger la sortie standard d'une commande
située à gauche vers le fichier situé à droite :
ls -al /home/jf/ > toto.txt
echo "Toto" > /etc/monfichierdeconfiguration
Page 4 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
La commande suivante est équivalente à une copie de fichiers :
cat toto > toto2
La redirection > " a pour but de créer un nouveau fichier. Ainsi, si un fichier du même nom
existait, celui-ci sera écrasé. La commande suivante crée tout simplement un fichier vide :
> fichier
L'emploi d'un double caractère " >> " permet de concaténer la sortie standard vers le fichier,
c'est-à-dire ajouter la sortie à la suite du fichier, sans l'écraser.
De manière analogue, le caractère " < " indique une redirection de l'entrée standard. La
commande suivante envoie le contenu du fichier toto.txt en entrée de la commande cat, dont le
seul but est d'afficher le contenu sur la sortie standard (exemple inutile mais formateur) :
cat < toto.txt
Enfin l'emploi de la redirection " << " permet de lire sur l'entrée standard jusqu'à ce que la
chaîne située à droite soit rencontrée. Ainsi, l'exemple suivant va lire l'entrée standard jusqu'à
ce que le mot STOP soit rencontré, puis va afficher le résultat :
cat << STOP
6/ Tubes de communication (pipes)
Les tubes (en anglais " pipes ", littéralement tuyaux) constituent un mécanisme de communication
propre à tous les systèmes UNIX. Un tube, symbolisé par une barre verticale (caractère «|»),
permet d'affecter la sortie standard d'une commande à l'entré standard d'une autre, comme un
tuyau permettant de faire communiquer l'entrée standard d'une commande avec la sortie
standard d'une autre.
Ainsi dans l'exemple suivant, la sortie standard de la commande ls -al est envoyée sur le
programme sort chargé de trier le résultat par ordre alphabétique :
ls -al | sort
Il est possible de cette façon de chaîner un certain nombre de commandes par tubes successifs.
Dans l'exemple suivant la commande affiche tous les fichiers du répertoire courant, sélectionne
les lignes contenant le mot "zip" (grâce à la commande grep) et compte le nombre de lignes total :
ls -l | grep zip | wc -l
Page 5 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
C/ LA HIERARCHIE DES FICHIERS
Pour assurer la compatibilité et la portabilité, les systèmes Linux respectent l'unique norme FHS
(File Hierarchy Standard). La hiérarchie de base est la suivante:
/
/bin
/boot
/dev
/etc
/etc/X11
/etc/opt
/home
/lib
/mnt
/opt
/root
/sbin
/tmp
/usr
/usr/X11R6
/usr/X386
/usr/bin
/usr/include
/usr/lib
/usr/local
/usr/local/bin
Page 6 sur 20
la racine, elle contient les répertoires
principaux
contient des exécutables essentiels au
système, employés par tous les utilisateurs (par
exemple, les commandes ls, rm, cp, chmod,
mount, ...)
contient les fichiers permettant à Linux de
démarrer
contient les points d'entrée des périphériques
contient les commandes et les fichiers
nécessaires à l'administrateur du système
(fichiers passwd, group, inittab, ld.so.conf,
lilo.conf, ...)
contient les fichiers spécifiques à la
configuration de X (contient XF86Config par
exemple)
contient les fichiers de configuration
spécifiques aux applications installés dans /opt
répertoire personnel des utilisateurs
contient des bibliothèques partagées
essentielles au système lors du démarrage
contient les points de montage des partitions
temporaires (cd-rom, disquette, ...)
contient des packages d'applications
supplémentaires
répertoire de l'administrateur root
contient les fichiers binaires système
essentiels (par exemple la commande adduser)
contient les fichiers temporaires
Hiérarchie secondaire
ce répertoire est réservé au système X version
11 release 6
utilisé avant par X version 5, c'est un lien
symbolique vers /usr/X11R6
contient la majorité des fichiers binaires et
commandes utilisateurs
contient les fichiers d'en-tête pour les
programmes C et C++
contient la plupart des bibliothèques partagées
du système
contient les données relatives aux programmes
installés sur la machine locale par le root
binaires des programmes locaux
BAC PRO MRIM
decouvertelinux.doc
/usr/local/games
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/src
/usr/sbin
/usr/share
/usr/src
/var
Page 7 sur 20
15/04/2015
binaires des jeux locaux
fichiers d'en-tête C et C++ locaux
Bibliothèques partagées locales
binaires système locaux
hiérarchie indépendante
fichiers sources locaux
contient les fichiers binaires non essentiels au
système réservés à l'administrateur système
réservé aux données non dépendantes de
l'architecture
contient des fichiers de code source
contient des données variables
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
D/ LES PRINCIPALES COMMANDES
Commande
ls
cd
cd ..
mkdir
rmdir
cp
mv
rm
passwd
cat
more
man
lpr
chmod
Description
liste le contenu d'un répertoire
change de répertoire
répertoire parent
crée un nouveau répertoire
supprime un répertoire
copie de fichier
déplacement de fichier
supprime le fichier
change le mot de passe de l'utilisateur
affiche le contenu du fichier
affiche le contenu du fichier avec des pauses
aide sur la commande demandée
imprime le fichier demandé
change l'attribut d'un fichier
chmod XXX fichier
XXX= Utilisateur|Groupe|Autres où X représente un
entier 1<X<7
chfn
chsh
finger
traceroute
ftp [machine]
[port]
Lecture=4, Ecriture=2, Exécution=1
X=Lecture+Ecriture+Exécution
0 signifie aucun droit
1 signifie droit d'exécution
2 signifie droit en écriture
3 signifie droit en écriture et en exécution
4 signifie droit en lecture
5 signifie droit en lecture et en exécution
6 signifie droit en lecture et droit en écriture
7 signifie tous les droits
change les informations personnelles vues avec finger
change le shell : chsh user emplacement_du_shell
liste des utilisateurs en ligne
trace le chemin entre la machine locale et la machine visée
transfert de fichier entre la machine locale et la machine
cible
get
récupère un fichier
put
envoie un fichier
quit
telnet [machine]
talk
quitte la session FTP
effectue un telnet
permet de parler à un utilisateur connecté
Page 8 sur 20
équivalent
DOS
dir
cd
cd..
md
deltree
copy, xcopy
move
del
type
type |more
help
print
BAC PRO MRIM
mesg
decouvertelinux.doc
15/04/2015
talk user
autorise ou non la commande talk
mesg n : Empeche la reception de messages talk
logout
mesg y : Permet la reception de messages talk
déconnexion
E/ GESTION DES UTILISATEURS
1/ Premier pas de l'administrateur
Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur
système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer
doivent être connus.
Les fichiers importants à connaître sont:


le fichier /etc/passwd
le fichier /etc/group
2/ Le fichier /etc/passwd
Le fichier /etc/passwd contient toutes les informations relatives aux utilisateurs (login, mots de
passe, ...). Seul le superutilisateur (root) doit pouvoir le modifier. Il faut donc modifier les droits
de ce fichier de façon à ce qu'il soit en lecture seule pour les autres utilisateurs.
Ce fichier possède un format spécial permettant de repérer chaque utilisateur, chacune de ses
lignes possède le format suivant:
nom_du_compte : mot_de_passe : numero_utilisateur : numero_de_groupe
: commentaire : répertoire : programme_de_demarrage
Sept champs sont explicités séparés par le caractère ":" :







le nom du compte de l'utilisateur
le mot de passe de l'utilisateur (codé bien sûr)
l'entier qui identifie l'utilisateur pour le système d'exploitation (UID=User ID,
identifiant utilisateur)
l'entier qui identifie le groupe de l'utilisateur (GID=Group ID, identifiant de groupe)
le commentaire dans lequel on peut retrouver des informations sur l'utilisateur ou
simplement son nom réel
le répertoire de connexion qui est celui dans lequel il se trouve après s'être connecté au
système
la commande est celle exécutée après connexion au système (c'est fréquemment un
interpréteur de commandes)
Voici un exemple de fichier passwd :
Page 9 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:daemon:/sbin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash
cquoi:x:500:100:Cool......:/home/cquoi:/bin/bash
Il est important de savoir que les mots de passe situés dans ce fichier sont chiffrés. Il est donc
inutile de l'éditer et de remplacer le champ mot_de_passe en tapant directement le mot de
passe, cela conduirait uniquement au blocage du compte.
Lorsqu'un utilisateur se connecte, le programme login compare le mot de passe tapé par
l'utilisateur (après l'avoir chiffré) à celui qui est dans le fichier passwd. Si ils sont différents, la
connexion ne peut être établie.
Pour interdire l'utilisation, il suffit de remplacer le mot de passe chiffré par une étoile : "*".
Les accès à un compte peuvent éventuellement être ouverts en laissant le champ mot_de_passe
vide. Toute personne voulant se connecter avec ce compte pourra alors le faire.
Pour pouvoir modifier le mot de passe d'un compte grâce à la commande passwd, il faut être soit
administrateur systême, soit propriétaire du compte (le système demandera alors à l'utilisateur
d'entrer l'ancien mot de passe avant de lui demander d'enter 2 fois son nouveau mot de passe).
UID : identifiant (unique) de chaque compte utilisateur. Les nombres de 0 à 99 sont
fréquemment réservés à des comptes propres à la machine. Les valeurs supérieures à 100 sont
elles réservées aux comptes utilisateurs.
GID : identifiant de groupe. Le groupe par défaut (nommé group) porte le numéro 50. Cet
identifiant est utilisé en relation avec les droits d'accès aux fichiers. Cette question ne vous
préoccupera que si votre système comporte plus d'un seul groupe d'utilisateurs. (Il faudra alors
se préoccuper du fichier /etc/group.
Il est possible à partir du Shell de modifier l'interpréteur de commandes. Pour ceci, il faut
utiliser la commande chsh ou alors passwd -s. Linux cherche alors dans le fichier /etc/shells le
programme que vous avez spécifié. Seules les commandes présentes dans ce fichier seront
acceptées et remplaceront la valeur actuelle du champ programme_de_demarrage. Ces
restrictions ne s'appliquent pas au compte du superutilisateur.
Assurez-vous que les droits d'accès du fichier /etc/shells sont les mêmes que pour le fichier
/etc/passwd
Le superutilisateur ne se nomme pas obligatoirement root. Pour le changer, il suffit de remplacer
le nom du compte root par celui désiré.
Un compte privilégié est un compte dont l'identifiant (UID, User ID) vaut zéro.
Page 10 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
3/ Le fichier /etc/group
Le fichier /etc/group contient la liste des utilisateurs appartenant aux différents groupes. En
effet, lorsque de nombreux utilisateurs peuvent avoir accès au système, ceux-ci sont
fréquemment rassemblés en différents groupes ayant chacun leurs propres droits d'accès aux
fichiers et aux répertoires.
Il se compose de différents champs séparés par ":" :
nom_de_groupe : champ_special : numero_de_groupe : membre1, membre2
Le champ spécial est fréquemment vide.
Le numéro de groupe est le numéro qui fait le lien entre les fichiers /etc/group et /etc/passwd
Voici un exemple de fichier /etc/group :
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:
tty:x:5:
disk:x:6:
lp:x:7:
wwwadmin:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:cyrus
news:x:13:news




Lorsque l'on utilise la commande ls avec l'option -l, le numéro de groupe est affiché avec
le numéro de l'utilisateur à qui appartient le fichier (ou le répertoire). Ce numéro unique
correspond à un nom de groupe unique (souvent 8 caractères max.).
Un même utilisateur peut apparaître dans plusieurs groupes. Lorsqu'il se connecte au
système, il appartient au groupe spécifié dans le fichier /etc/passwd (le champ GID). Il
peut en changer à l'aide de la commande newgrp. Des droits d'accès aux fichiers sont
alors définis.
Les protections du fichier doivent empêcher sa modification par les utilisateurs non
privilégiés.
Pour ajouter un groupe, l'administrateur peut modifier le fichier /etc/group à l'aide d'un
éditeur de texte. Il peut également utiliser la commande addgroup ou groupadd (pas
toujours présentes). Dans le premier cas, il aura uniquement la ou les lignes
correspondant aux groupes, à ajouter. Par exemple, la ligne :
admin : : 56 : ccm


Pour ajouter un utilisateur à un groupe, il suffit d'éditer le fichier /etc/group et de
rajouter ce nom au bout de la ligne en séparant le nom des membres par une virgule.
Pour supprimer un groupe, il suffit d'éditer le fichier /etc/group et d'effacer la ligne
correspondante. Mais attention, il ne faut pas oublier de changer dans le fichier
/etc/passwdles numéros (GID) du groupe supprimé, si des utilisateurs y appartenaient. Il
Page 11 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
est également essentiel de chercher les fichiers et répertoires de ce groupe pour le
changer (dans le cas contraire les fichiers et répertoires riquent d'être inaccessibles).
4/ La personnalisation du shell
Le fichier /etc/profile permet de configurer le Shell. Il concerne tous les utilisateurs.
On y trouve tout d'abord les variables du Shell telles que OPENWINHOME, PATH, ...
Ensuite, le type de terminal et la variable TERM sont définis en conséquence.
Une partie est consacrée au prompt du Shell, enfin une dernière permet la définition des
couleurs de la commande ls.
Au démarrage de Linux, il est agréable d'avoir le pavé numérique allumé, ce qui n'est pas le cas
par défaut.
Il y a donc quelques lignes à rajouter au fichier /etc/profile qui sont:
INITTY=/dev/tty[1-7]
for tty in $INITTY;
do setleds -D +num < $tty
done
Lors de la connexion au Shell, la première chose qui apparaît est le prompt, celui-ci peut être
configuré au gré de l'utilisateur.
Si l'administrateur veut avoir un prompt qui se nomme : "Bonjour#", il lui suffit alors d'éditer le
fichier /etc/profile. Celui-ci contient une variable appelée PS1. Toutes les lignes concernant
cette variable doivent alors être précédées d'un dièze: #. Il s'agit alors d'ajouter la ligne
PS1='Bonjour#'.
Il ne reste plus qu'à sauvegarder et se relogger. On peut alors apercevoir quelques changements.
Astuce: laisser un blanc après le prompt pour une meilleure lisibilité.
Il est également possible d'utiliser des variables dans le prompt (pour afficher par exemple
l'heure ou le nom de la machine...):
\d
\t
\u
\r
\w
\W
\h
pour
pour
pour
pour
pour
pour
pour
ajouter la date (format anglais)
ajouter l'heure (HH:MM:SS)
ajouter le nom de l'utilisateur
un retour à la ligne
ajouter le chemin complet du répertoire courant
ajouter le répertoire courant
ajouter le nom de la machine
Page 12 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
F/ FICHIERS FSTAB ET ASTUCES LINUX
1/ Fichier FSTAB
Ce fichier est un fichier de configuration ce trouvant dans le répértoire "/etc".

Quel est sa fonction ?
Lorsque Linux démarre, des périphériques et leur système de fichiers peuvent être
montés. C'est le fichier "/etc/fstab" qui s'en occupe. Ainsi, le lecteur de disquette, le
lecteur CD-ROM et les disques durs peuvent être montés au démarrage de Linux.
Quelle est sa structure ?
Sa structure est faite par colonne et de la manière suivante
"Périphérique" "Point de montage" "Type de système" "Options de montage" "Fréquence de
sauvegarde" "Ordre de vérification"
La 1ère colonne correspond donc aux périphériques tel que des disques durs ( en général
"/dev/hda1" ou "/dev/sda1" : hd pour IDE et sd pour SCSI ), lecteurs CD-ROM ( en général
"/dev/cdrom" ), graveur CD-ROM ( en général "/dev/cdrom" ), lecteur de disquettes ( en général
"/dev/fd0" ), etc... . Les partitions de mémoire secondaire s'écriront en général "none".Ces
partitions sont au fait des partitions contenant non pas de vrai fichiers appelés "dur" (écrit sur
le disque) mais contiennes des fichiers mémoire ( qui eux ne sont pas écrits sur le disque mais
dans la mémoire vive ).
La 2ème colonne correspond donc aux points de montage. Le point de montage est un répértoire
de votre machine dans lequel la source du périphérique va se monter (va s'installer). Il faudra au
préalable que se répértoire existe avant le montage. En général, se point de montage s'écrira
"/monrépértoire".
La 3ème colonne correspond donc au type de fichier système : auto / ignore / ntfs / smbfs ( la
valeur "ignore" fait ignorer la ligne dans le cas d'une partition qui n'est pas encore utilisée, la
valeur "auto" utilisera une détection automatique du système de fichier, smbfs correspond à une
importation d'un partage Samba )
La 4ème colonne définit les options de montage du système de fichier séparées par une virgule.
La 5ème colonne définit la fréquence de sauvegarde du système de fichier. 0 est la valeur par
défaut et signifie aucune sauvegarde.
La sixième colonne donne l'ordre de vérification du système de fichier par fsck lors de
l'initialisation. Il est conseillé de laisser les valeurs par défaut.
Normalement, seul le Super-Utilisateur ( root ) peut monter des systèmes de fichiers.
Néanmoins, si la ligne de la fstab contient l'option user, n'importe quel utilisateur peut monter le
système de fichiers correspondant.
Page 13 sur 20
BAC PRO MRIM

15/04/2015
Exemples de fichiers fstab :
/dev/hda1
/dev/hda5
/dev/hda3
/dev/hda4
/mnt/floppy
none
none
/mnt/cdrom

decouvertelinux.doc
/mnt/DOS_hda1
/mnt/DOS_hda5
swap
/
/mnt/floppy
/proc
/dev/pts
/mnt/cdrom
vfat
vfat
swap
ext2
supermount
proc
devpts
supermount
user,exec,conv=binary
user,exec,conv=binary
defaults
defaults
fs=vfat,dev=/dev/fd0
defaults
mode=0620
fs=iso9660,dev=/dev/cdrom
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
Autre exemple :
LABEL=/
/
ext3
defaults
11
LABEL=/boot
/boot
ext3
defaults
12
none
/dev/pts
devpts gid=5,mode=620 0 0
none
/dev/shm
tmpfs defaults
00
none
/proc
proc
defaults
00
none
/sys
sysfs defaults
00
/dev/sda5
swap
swap defaults
00
/dev/cdrom
/mnt/cdrom
udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0
/mnt/floppy auto
noauto,owner,kudzu 0 0
//serveur/outils
/outils
smbfs
auto,user,rw,uid=500,gid=500,umask=0,username=moi,password=****
00

Exemple de montage de partition :
La manipulation n'est pas très compliquée et vaut pour tous les supports amovibles (clés usb,
disques durs, mémoire flash...).
Il faut d'abord créer un point de montage (un dossier) à l'endroit où vous voulez pouvoir accéder
à votre disque dans l'arborescence de fichiers. Par exemple le dossier /mnt/amovible.
Vous pouvez le créer en mode graphique avec votre gestionnaire de bureau préféré ou à l'aide de
la commande mkdir en tant que root:
# mkdir /mnt/amovible
Une fois ce dossier créé, il faut identifier le périphérique que linux a reconnu pour le disque. Pour
cela, la commande en tant que root:
# fdisk -l (l comme dans linux) :
et le résultat :
Page 14 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
[root@localhost root]# fdisk -l
Disque /dev/hda: 10.2 Go, 10262568960 octets
255 têtes, 63 secteurs/piste, 1247 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Périphérique Boot
Start
End
Blocks Id System
/dev/hda1 *
1
730
5863693+ 7 HPFS/NTFS
/dev/hda2
731
1247
4152802+ f W95 Ext'd (LBA)
/dev/hda5
731
1247
4152771 7 HPFS/NTFS
Disque /dev/hdb: 122.9 Go, 122942324736 octets
16 têtes, 63 secteurs/piste, 238216 cylindres
Unités = cylindres de 1008 * 512 = 516096 octets
Périphérique Boot
Start
End
Blocks Id System
/dev/hdb1 *
1
20318 10240240+ 83 Linux
/dev/hdb2
20319
142223 61440120 83 Linux
/dev/hdb3
142224
203175 30719808 83 Linux
/dev/hdb4
203176
238216 17660664 f W95 Ext'd (LBA)
/dev/hdb5
203176
204215
524128+ 82 Linux swap
/dev/hdb6
204216
238216 17136472+ 83 Linux
Disque /dev/sda: 127 Mo, 127926272 octets
16 têtes, 32 secteurs/piste, 488 cylindres
Unités = cylindres de 512 * 512 = 262144 octets
Périphérique Boot
Start
End
Blocks Id System
/dev/sda1 *
1
488
124904+ 6 FAT16
Partition 1 a des fins différentes physique/logique:
phys=(499, 15, 32) logique=(487, 15, 32)
Le disque est donc reconnu en tant que /dev/sda1 . Sa taille est de 124904ko et est formaté en
FAT16.
Le n°1 de /dev/sda1 signifie qu'il s'agit de la 1ère partition du disque.
Il faut maintenant monter (rendre accessible) votre disque dans l'emplacement que nous avons
créé plus haut. Il suffit d'utiliser en root toujours la commande mount :
# mount /dev/sda1 /mnt/amovible
Vous pourrez alors accéder en tant que root à votre disque dans le dossier /mnt/amovible
Pour y accéder en tant qu'utilisateur, ajoutez la ligne suivante à votre fichier /etc/fstab (Ce
fichier contient tout le détail de vos partitions et lecteurs cdrom).
/dev/sda1 /mnt/amovible vfat rw,gid=500,uid=500,umask=002,auto,user 0 0
Page 15 sur 20
BAC PRO MRIM

decouvertelinux.doc
15/04/2015
Explication des options :
vfat/ntfs
indique le format de fichier de la partition
rw/ro
"rw" signifie que la lecture et l'écriture sont autorisées (read - write) et ro
que seulement la
lecture l'est (read only)
gid/iud
permet d'appliquer à tous les fichiers de la partition l'appartenance de
l'utilisateur (iud) et/ou
du groupe d'utilisateurs (gid) défini par gid/iud
umask=002
fixe les autorisations des fichiers pour l'utilsateur/le groupe. La valeur 002
permet de fixer
les autorisations en "775", donc tout le monde pourra lire ou exécuter des fichiers sur ce
système de fichiers, mais seuls les membres du groupe et l'utilisateur possédant les fichiers
pourront les modifier.
noauto/auto
user/nouser
root le montage
de la partition.
définit si le montage de la partition est automatique ou non au démarrage.
permet à l'utilisateur de monter la partition. L'option nouser n'autorise qu'au
Si vous choisissez l'option noauto, il vous faudra toujours monter votre partition avec la
commande mount, mais la ligne ci-dessus permet de la monter plus simplement avec la commande
suivante :
$ mount /mnt/amovible
et pour la démonter (avant chaque débranchement s'il s'agit d'un support amovible) :
$ umount /mnt/amovible
1/ Monter un lecteur de CD-ROM
Pour monter un lecteur de CD-ROM sous Linux il faut se logger en administrateur système, c'està-dire avec le login "root".
Il suffit ensuite de monter le lecteur, c'est-à-dire "accrocher" le contenu du lecteur de CD-ROM
dans un répertoire (la plupart du temps /mnt/cdrom/) en tapant cette commande:
mount -t iso9660 /dev/cdrom /mnt/cdrom
il ne faut pas oublier de démonter le lecteur avec la commande
umount /mnt/cdrom
Page 16 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
2/ Monter une partition MS-DOS
Il est possible sous Linux d'accéder à des partitions MS-DOS en les montant dans le système de
fichiers Unix. Pour monter la partition /dev/hda1 il suffit de taper:
mount -t msdos /dev/hda1 /mnt/hd
il ne faut pas oublier de démonter la partition
umount /mnt/hd
3/ Monter un lecteur de disquettes
De la même façon que pour la partition MS-DOS, on peut monter un lecteur de disquette et
accéder aux données contenues sur une disquette formattée sous DOS grâce à la commande:
mount -t msdos /dev/fd0 /mnt/fd
il ne faut pas oublier de démonter le lecteur de disquettes
umount /mnt/fd.
4/ Monter une clef USB
Monter la clé au coup par coup:
- créer un point de montage :
mkdir /mnt/cle
- monter le périphérique :
mount -t vfat /dev/sda1 /mnt/cle
ou
mount -t vfat /dev/sda /mnt/cle
Automatiser le montage de la clé :
- créer un point de montage :
mkdir /mnt/cle
- rajouter une ligne au fichier /etc/fstab
/dev/sda /mnt/cle vfat defaults,rw,user,noauto 0 0
Monter la clé :
mount /mnt/cle
Démonter la clé
umount /mnt/cle
5/ Redémarrer l'ordinateur
Pour redémarrer correctement l'ordinateur, il suffit d'utiliser la commande "shutdown". La
séquence de touches <CTRL> <ALT> <SUPPR> a sur la plupart des distributions Linux été
programmée pour correspondre à la commande shutdown.
Pour un redémarrage rapide il suffira de taper "shutdown -r now".
Page 17 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
6/ Forcer la reconnaissance du contrôleur SCSI
Lorsque les contrôleurs n'ont pas de bios ils ne sont généralement pas détectés par Linux, il faut
dans ce cas forcer la détection en tapant au prompt de LILO:
boot: linux tmx8xx=<IRQ>,<adresse>
tmx8xx représente un contrôleur TMC-8xx, si vous en possédez un autre il vous faut connaitre
sa désignation. IRQ représente l'interruption du contrôleur et "adresse" l'adresse de sa
mémoire partagée.
Page 18 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
7/ Créer un alias
Tout d'abord qu'est-ce qu'un alias?
C'est une commande raccourcie qui permet d'en exécuter une autre, cela peut aussi s'étendre à
d'autres concepts, un alias pourra aussi être un raccourci pour un e-mail.
Les commandes sous Linux pour monter un périphérique sont (comme vous l'avez vu ci-dessus
très lourdes à taper.
Il suffit donc au lieu de taper la commande:
"mount -t iso9660 /dev/cdrom /mnt/cdrom"
de taper:
alias cdrom='mount -t iso9660 /dev/cdrom /mnt/cdrom'
il suffira alors de taper "cdrom" pour monter ce périphérique.
Cependant, vous vous demandez: à quoi bon taper cette commande si je dois la déclarer à chaque
fois que je réinitialise le système?
Il suffit en fait simplement d'aller éditer le fichier "/etc/bashrc" et d'ajouter la ligne:
alias cdrom='mount -t iso9660 /dev/cdrom /mnt/cdrom'
D/ CARTE RESEAU SOUS LINUX
1/ L'interface de boucle locale
Il faut être en root:
Sur la plupart des distributions Linux, l'interface loopback est déjà configurée. Vous pouvez le
verifier en faisant la commande suivante:
# /sbin/ifconfig
Vous devriez voir ceci:
# ifconfig lo
lo
Link encap Local loopback
inet addr 127.0.0.1 Bcast [NONE SET] Mask 255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
sinon faites:
# ifconfig lo 127.0.0.1
Il faut maintenant entrer cette interface dans la table de routage
# route add 127.0.0.1
Maintenant que votre interface loopback est configurée, il suffit de tester votre interface en
faisant des "ping". Nous verrons le fonctionnement de "ping" dans la section des outils réseaux.
# ping 127.0.0.1
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=32 time=1 ms
64 bytes from 127.0.0.1: icmp_seq=0 ttl=32 time=0 ms
Votre interface loopback est correctement configurée.
Page 19 sur 20
BAC PRO MRIM
decouvertelinux.doc
15/04/2015
2/ L'interface ethernet
La configuration de l'interface Ethernet utilise les mêmes outils et les mêmes méthodes que
l'interface Loopback.
Nous allons configurer cette interface avec une adresse de classe C. Avant d'effectuer ceci, il
faut avoir inséré le module réseau correspondant à votre carte.
# ifconfig eth0 192.168.0.1 netmask 255.255.255.0
en faisant
# /sbin/ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:01:03:48:77:56
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:1 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:4
collisions:0 txqueuelen:0
Interrupt:11 Base address:0x1000
Il faut ajouter l'interface ethernet dans la table de routage:
# route add -net 192.168.0.0
Vous devez deja voir l'interface "lo" aussi connu sous le nom de loopback sinon ifconfig lo
127.0.0.1
# ping 192.168.0.1
1 packets transmitted, 1 packets received, 0% packet loss
rOund-trip min/avg/max = 0.1/0.1/0.1 ms
bash-2.04$ ping 192.168.0.1
PING 192.168.1.223 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=128 time=0.5 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=0.3 ms
--- 192.168.0.1 ping statistics --2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.4/0.5 ms
Vos interfaces sont désormais configurées correctement.
Vous pouvez maintenant editer votre fichiers /etc/hosts:
#Debut du fichier /etc/hosts.
127.0.0.1 localhost
192.168.0.1 Albert.einstein.net Albert
#Fin du fichier /etc/hosts.
Essayez de faire
# ping localhost
# ping Albert
Page 20 sur 20
Téléchargement