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