Travaux pratiques Linux PS1

Transcription

Travaux pratiques Linux PS1
Cursus Linux PS1
Travaux pratiques
Laboratoire des Technologies GNU/
Linux, SUPINFO
Révision datée du19-12-2007
Copyright © 2007 SUPINFO
All rights reserved.
ble des matières
1. Introduction .......................................................................................................................................................... 1
2. Organisation du FHS .............................................................................................................................................. 2
2.1. Répertoires principaux ................................................................................................................................. 2
3. Commandes de base ............................................................................................................................................... 3
3.1. Rappels ..................................................................................................................................................... 3
3.1.1. L’interpréteur de commandes .............................................................................................................. 3
3.1.2. Passer d’un utilisateur à l’autre rapidement ............................................................................................ 4
3.2. Opérations sur les fichiers et répertoires ........................................................................................................... 4
3.3. Pipes et redirections ..................................................................................................................................... 5
3.4. Les commandes find et locate ....................................................................................................................... 6
3.5. Commandes supplémentaires… ..................................................................................................................... 6
3.6. L'archivage avec tar et gzip .......................................................................................................................... 7
3.7. Édition de texte ........................................................................................................................................... 7
4. Gestion des utilisateurs et des groupes ....................................................................................................................... 8
4.1. Les utilisateurs et groupes ............................................................................................................................. 8
4.2. Gestion des identités .................................................................................................................................... 8
4.3. Suppression d'utilisateur et de groupe .............................................................................................................. 9
4.4. Modèle de répertoire personnel ...................................................................................................................... 9
5. Gestion des permissions .........................................................................................................................................11
5.1. TP : gestion des permissions .........................................................................................................................11
6. Gestion des disques ...............................................................................................................................................12
6.1. Gestion des disques ....................................................................................................................................12
6.2. Cas pratique ..............................................................................................................................................12
7. Gestion des processus ............................................................................................................................................14
7.1. Gestion des processus .................................................................................................................................14
7.2. Planification de tâches .................................................................................................................................14
8. Configuration réseau .............................................................................................................................................15
8.1. Configuration manuelle et automatique ...........................................................................................................15
9. Sed et Awk ..........................................................................................................................................................16
9.1. Sed ..........................................................................................................................................................16
9.2. Awk ........................................................................................................................................................16
10. Scripting BASH ..................................................................................................................................................18
10.1. Fichiers de configuration de Bash ................................................................................................................18
10.1.1. Rappels ........................................................................................................................................18
10.1.2. Customisation de Bash ....................................................................................................................18
10.2. Scripting Bash .........................................................................................................................................19
11. Le serveur X ......................................................................................................................................................22
11.1. Avant de commencer .................................................................................................................................22
11.2. Configuration et premier lancement du serveur X ...........................................................................................22
11.3. Lancement d'une session graphique ..............................................................................................................23
11.4. Configuration d'un display manager .............................................................................................................24
11.5. X11 Forwarding avec SSH .........................................................................................................................24
12. Installation de programmes ...................................................................................................................................26
12.1. Travaux Pratiques : Installation de programmes ..............................................................................................26
12.1.1. Installation de paquetages avec les outils urpm* ..................................................................................26
12.1.2. Installation depuis les sources ...........................................................................................................26
13. Machines virtuelles .............................................................................................................................................28
13.1. Qemu .....................................................................................................................................................28
13.2. Emulation à l'aide de Wine .........................................................................................................................28
14. Le noyau ...........................................................................................................................................................29
14.1. Manipulation des modules du noyau .............................................................................................................29
14.2. Compilation du noyau ...............................................................................................................................30
Cursus Linux PS1
14.3. Configuration du bootloader .......................................................................................................................31
1
Chapitre 1. Introduction
Content missing: FIXME.
2
Chapitre 2. Organisation du FHS
Table des matières
2.1. Répertoires principaux ..................................................................................................... 2
2.1. Répertoires principaux
Q:
Quelles sont les différences entre /bin et /usr/bin ?
Q:
Vous installez un logiciel a partir des sources. Par convention, dans quel répertoire allez vous l'installer ?
Q:
Dans quels répertoires pouvez-vous trouver la configuration d'un programme ?
3
Chapitre 3. Commandes de base
Table des matières
3.1. Rappels ......................................................................................................................... 3
3.1.1. L’interpréteur de commandes .................................................................................. 3
3.1.2. Passer d’un utilisateur à l’autre rapidement ................................................................ 4
3.2. Opérations sur les fichiers et répertoires ............................................................................... 4
3.3. Pipes et redirections ......................................................................................................... 5
3.4. Les commandes find et locate ........................................................................................... 6
3.5. Commandes supplémentaires… ......................................................................................... 6
3.6. L'archivage avec tar et gzip .............................................................................................. 7
3.7. Édition de texte ............................................................................................................... 7
3.1. Rappels
Avant de commencer, procédons à quelques rappels.
3.1.1. L’interpréteur de commandes
L’endroit où vous pouvez taper des commandes dans un terminal s’appelle l’interpréteur de commande (shell en
anglais). Il en existe plusieurs, le plus utilisé sous Linux étant Bash.
Le texte qui précède l’endroit où vous pouvez saisir vos commandes, s’appelle le prompt. Bien que celui soit
entièrement modifiable, voici de quoi est composé un prompt « classique » :
Utilisateur @ NomDeLaMachine RépertoireCourant ($|#)
Par exemple :
root@localhost ~ #
Le symbole final (# ou $) permet de distinguer rapidement les privilèges de l’utilisateur : « # » pour le super utilisateur : le root, « $ » pour un utilisateur classique. Ce symbole fait parti du prompt et peut donc être changé.
Ici, le « ~ » (symbole tilde) signifie qu’il s’agit du répertoire personnel de l’utilisateur. Le répertoire du super
utilisateur étant /root et le répertoire d’un utilisateur classique étant situé, par convention, dans /
home/Login de l’utilisateur.
L’interpréteur de commande permet de compléter automatiquement le nom des commandes et les chemins vers
les fichiers ou répertoire. Pour cela, il suffit d’appuyer sur la touche TAB et Bash fera de son mieux pour compléter votre ligne. Dans le cas où plusieurs façons de compléter sont possibles, il faudra appuyer une seconde
fois sur la touche TAB pour afficher la liste des possibilités.
Commandes de base
Note
Le fonctionnement détaillé de l'interpréteur de commandes Bash sera l'objet d'un prochain cours.
3.1.2. Passer d’un utilisateur à l’autre rapidement
Deux comptes utilisateurs sont présents sur la machine :
• Le super utilisateur (root). Mot de passe : supinfo.
• L’utilisateur supinfo. Mot de passe : supinfo.
Pour passer de l’un à l’autre il suffit de taper su suivi du login de l’utilisateur désiré :
[root@linux ~]# su supinfo
[supinfo@linux ~]$
Note
Le fonctionnement détaillé de su sera abordé dans le cours sur la gestion des utilisateurs.
3.2. Opérations sur les fichiers et répertoires
Q:
Créer un fichier file1 et un dossier folder1 dans votre répertoire personel.
Q:
Dans le répertoire folder1, créer un lien symbolique nommé noyau qui pointe vers /usr/src/.
Q:
Lister le contenu de votre répertoire courant, puis le répertoire folder1. Copier le répertoire folder1
en folder2. Effacer le répertoire folder1 puis renommer le folder2 en folder1.
Q:
Aller dans le répertoire folder1/noyau/, puis utiliser la commande pwd -P pour afficher le répertoire
où vous vous trouvez. Utiliser la commande cd – pour revenir au répertoire précédent. Enfin, afficher à
nouveau l'arborescence.
Q:
Afficher le fichier /var/log/messages avec les commandes cat, more, less, tail puis head. Décrire
rapidement les effets de chacunes.
Q:
Sur une première console, afficher le fichier /var/log/auth.log en utilisant le rafraîchissement automatique de la commande tail. Connectez-vous à une autre console virtuelle et observez le changement
du fichier sur la première console.
4
Commandes de base
Q:
Afficher les lignes du fichier /var/log/messages qui contiennent le mot « usb ».
Q:
Créer un fichier un super fichier en l'écrivant entre guillemets. L'effacer en utilisant la commande
rm et l'auto-complétion de Bash à partir du premier mot du fichier. Observer la syntaxe utilisée par Bash.
Q:
Effacer tous les fichiers et dossiers se finissant par « 1 ».
3.3. Pipes et redirections
Note
Lorsque vous rencontrez une erreur, vérifiez attentivement ce que vous avez tapé. N'hésitez pas à
consulter l'aide des commandes pour vous assurer de l'ordre des arguments.
• commande --help
• man commande
Q:
Quels sont les trois flux standards ?
Q:
Lister en affichage complet le contenu du répertoire /etc dans le fichier sortie_etc.
Q:
Concaténer la liste des répertoires et des fichiers de /var/log/ à la suite de sortie_etc.
Q:
Utiliser cat combiné avec less pour afficher le fichier sortie_etc.
Q:
Utiliser cat combiné avec grep pour n’afficher que les fichiers qui ont «.conf» dans leur nom et qui sont
dans sortie_etc.
Q:
Lister tous les fichiers du répertoire /etc contenant la suite de caractères «env».
Q:
Lister le répertoire /dev/ de 3 manières : Classique (ls), combiner avec more, puis avec less.
Q:
Afficher les noms de fichiers contenant la suite de caractères « conf » dans les 30 premiers fichiers du répertoire /etc.
Q:
Faire de même pour les 10 dernières lignes.
Q:
Mettre à jour la base de donnée slocate.
5
Commandes de base
Q:
Rechercher tous les fichiers se terminant par « .conf », rediriger le résultat dans le fichier /
home/supinfo/result puis afficher le fichier result avec la commande less seulement et seulement si la commande locate a réussi.
3.4. Les commandes find et locate
Q:
Rechercher un fichier portant le nom de messages dans /var.
Q:
Rechercher tous les fichiers se terminant par « .log ».
Q:
Rechercher tous les répertoires portant le nom de log qui ont été accédés depuis moins de 2 jours.
Q:
Rechercher tous les fichiers se terminant par « .log » sur le système et y appliquer un « touch » afin d'en
modifier la dernière date d'accès. Vérifier ensuite avec la commande ls -l.
Q:
Rechercher tous les fichiers se terminant par « .log » sur le système avec la commande locate et observer
la vitesse.
3.5. Commandes supplémentaires…
Q:
Créer un fichier toto contenant la phrase «linux rulez» grâce à la commande echo et les redirections.
Q:
Convertir toutes les lettres minuscules (de a à z) du fichier toto en lettres majuscules grâce à la commande tr, puis rediriger le tout vers le fichier tata. Enfin, grâce à l’opérateur &&, afficher le contenu de
tata.
Astuce
Consultez l'aide de la commande tr si nécessaire.
Q:
Le fichier /etc/passwd contient diverses informations relatives aux comptes des utilisateurs. Comment faire pour obtenir un fichier sys_users contenant le login de tous les utilisateurs du système, à
hauteur d'un login par ligne, chaque ligne étant numérotée ?
Q:
Afficher le nombre de comptes utilisateurs présents sur la machine en une seule commande.
Q:
La commande ifconfig (en root) affiche les informations relatives au réseau. Comment faire pour obtenir
un fichier ip_address contenant la liste des adresses IP configurées, à hauteur d’une adresse IP par
ligne ?
6
Commandes de base
Q:
Quels sont les trois opérateurs que l’on peut utiliser pour exécuter plusieurs commandes à la suite ?
3.6. L'archivage avec tar et gzip
Q:
Créer une archive tar logs.tar contenant /var/log et créer une archive tar compressée
log_files.tar.gz avec le même contenu, observer la différence de taille.
Q:
Afficher les fichiers contenus dans l'archive log_files.tar.gz
Q:
Extraire les fichiers de l'archive log_files.tar.gz dans le répertoire courant
Q:
En utilisant la compression offerte par Gzip, compresser de manière récursive l'ensemble des fichiers extraits de la commande précédente avec un taux de compression de 2 et visualiser l'opération.
Q:
Compresser l'archive log.tar avec un taux de 9.
3.7. Édition de texte
L’éditeur de texte Vi (prononcer « vi aïe ») est l’un des éditeurs les plus répandus dans le monde UNIX. Il vous
faut donc apprendre à le maîtriser. Pour cela, tapez vimtutor et complétez le tutorial.
7
8
Chapitre 4. Gestion des utilisateurs et des
groupes
Table des matières
4.1. Les utilisateurs et groupes ................................................................................................. 8
4.2. Gestion des identités ........................................................................................................ 8
4.3. Suppression d'utilisateur et de groupe .................................................................................. 9
4.4. Modèle de répertoire personnel .......................................................................................... 9
4.1. Les utilisateurs et groupes
Q:
Créez un utilisateur mandriva avec comme répertoire home /home/mandriva (généré automatiquement) et avec comme mot de passe « password » (ne pas faire apparaître le mot de passe en clair sur la
ligne de commande).
Q:
Créez un groupe esi sans aucune option.
Q:
Définissez le groupe esi comme groupe principal de l'utilisateur mandriva.
Q:
Définissez les groupes secondaires de l'utilisateur mandriva comme étant : users et audio.
Q:
Listez les groupes de l'utilisateur mandriva.
4.2. Gestion des identités
Note
Pour se déconnecter rapidement d'une session dans un terminal, il existe le raccourci très pratique
Ctrl+D. Ce raccourci équivaut à taper la commande exit.
Q:
Changez votre identité de l'utilisateur root en utilisateur mandriva.
Q:
Listez les utilisateurs connectés.
Q:
Déconnectez vous de l'utilisateur mandriva pour revenir en super utilisateur root.
Gestion des utilisateurs et des groupes
Q:
Désactivez le compte mandriva.
Q:
Changez votre identité en supinfo. Pourquoi le mot de passe de supinfo n'est-il pas demandé ?
Q:
Essayez de vous logguer en tant que mandriva.
Q:
Revenez en root puis logguez vous en tant que mandriva. Pourquoi cela marche-t-il ?
Q:
Revenez en root et réactive le compte de l'utilisateur mandriva.
Q:
Modifiez le fichier /etc/passwd et remplacez le shell de mandriva par /bin/false.
Q:
Logguez-vous en tant que mandriva. Cela fonctionne-t-il ? Pourquoi ?
Note
La page de manuel de false peut vous aider.
4.3. Suppression d'utilisateur et de groupe
Q:
Supprimez l'utilisateur mandriva et son répertoire personnel.
Q:
Supprimez le groupe esi.
Note
On peut également éditer les fichiers /etc/passwd et /etc/group et supprimer les lignes
correspondantes.
4.4. Modèle de répertoire personnel
Q:
Faîtes en sorte que, désormais, pour tout répertoire personnel créé automatiquement, des dossiers « Mes
Documents », « Ma Musique », « Mes Vidéos » et un fichier « Bienvenue » contenant une
phrase de bienvenue soient créés à l'intérieur.
Créez ensuite un compte bernard avec génération automatique du dossier personnel et vérifiez la création
des dossiers.
9
Gestion des utilisateurs et des groupes
Note
Pensez au dossier /etc/skel !
10
11
Chapitre 5. Gestion des permissions
Table des matières
5.1. TP : gestion des permissions .............................................................................................11
5.1. TP : gestion des permissions
Q:
Créer un fichier toto et un dossier foo. Quelles sont les permissions définies par défaut ?
Q:
Afficher les permissions du fichier et du dossier.
Q:
Changer le umask à 0077
Q:
Créer un fichier toto2 et un dossier foo2, puis afficher leurs permissions.
Remettre le umask à 0022.
Q:
Changer le propriétaire et le groupe du fichier toto en root
Q:
Appliquer les permissions rwx pour l'utilisateur, rx pour le groupe, r pour les autres, en utilisant la notation avec les lettres, puis avec les chiffres
Q:
Essayer d'arrêter la machine en tant qu'utilisateur supinfo en utilisant la commande halt puis /
sbin/halt. Pourquoi la commande halt ne fonctionne pas sans rentrer son chemin complet ?
Q:
Faites en sorte qu'un utilisateur normal puisse arrêter la machine en utilisant le suid sur le fichier exécutable /sbin/halt.
12
Chapitre 6. Gestion des disques
Table des matières
6.1. Gestion des disques ........................................................................................................12
6.2. Cas pratique ..................................................................................................................12
6.1. Gestion des disques
Q:
Quel sera le nom du périphérique correspondant au second disque d'un contrôleur SCSI ?
Q:
Quel sera le nom du périphérique correspondant au premier disque du premier contrôleur IDE ?
Q:
Créer une nouvelle partition Linux de type ext3 de 100Mo (avec fdisk) sur le disque dur esclave du premier contrôleur SCSI .
Q:
Installer un système de fichiers ext3 sur la nouvelle partition.
Q:
Monter la partition dans le répertoire /mnt/externe. Attribuer le répertoire à l’utilisateur supinfo et au
groupe root. Faire en sorte que l'utilisateur supinfo ait les droits de lecture/écriture/exécution, et que tous
les autres aient les droits de lecture/exécution.
Q:
Démonter la partition puis remplir /etc/fstab afin de monter la partition automatiquement au démarrage.
Q:
Redémarrer et vérifier que le montage fonctionne.
Q:
Afficher la taille de la partition montée avec df puis avec du.
6.2. Cas pratique
L'entreprise GnuCorp possède un serveur sous Mandriva 2007 qui sert de serveur web. L'administrateur a été assez distrait, il n'a pas créé de partition pour /var. Maintenant que son système est en production, les journaux
commencent à représenter une part significative de l'espace disque utilisé. Pour y remédier il souhaite mettre le
dossier /var/log sur un autre disque sans changer la configuration des services déjà présent sur le système.
Etant occupé, l'administrateur vous confie l'élaboration de la procédure et vous fourni une machine virtuelle afin
d'effectuer des simulations.
Q:
Démontez le disque SCSI que vous venez de préparer. Vous l'utiliserez comme disque de stockage pour /
var/log.
Gestion des disques
Q:
Créez le système de fichier sur le disque /dev/sdb1
Q:
Montez la partition /dev/sdb1 dans /mnt/externe et copiez le répertoire /var/log dans le répertoire
/mnt/externe (donc sur le disque).
Note
Afin de préserver les permissions, liens symboliques et appartenances, on va employer
l'option --preserve=all
Q:
Démontez le point de montage /mnt/externe. Ajoutez une entrée dans /etc/fstab afin de monter
la partition /dev/sdb1 automatiquement sur /var/log.
Q:
Redémarrer, et vérifier le fonctionnement de votre configuration.
13
14
Chapitre 7. Gestion des processus
Table des matières
7.1. Gestion des processus .....................................................................................................14
7.2. Planification de tâches .....................................................................................................14
7.1. Gestion des processus
Q:
* Lancer yes > /dev/null et stopper la commande en cours à l'aide du raccourci clavier.
Q:
* Utiliser la commande jobs qui vous permettra d'observer les "travaux" du shell courant.
Q:
* Passer la commande yes > /dev/null en arrière plan.
Q:
* Envoyer un signal SIGTERM ou SIGKILL au processus yes > /dev/null et vérifier qu'il a bien été quitté.
Q:
* Editer le fichier /etc/resolv.conf avec vi en utilisant la commande nice. Lancer la commande
top et vérifier la priorité du processus. Toujours avec la commande top diminuer la priorité du processus
à 15.
Q:
* Lancer la commande top afin que celle-ci affiche tous les processus durant 3 rafraichissements, où
l'écart entre chaque rafraichissement soit de 5 secondes et ce dans un fichier. (voir le man)
7.2. Planification de tâches
Q:
Créer avec le super Administrateur le fichier /etc/cron.deny, pour autoriser les utilisateurs à utiliser crontab, puis, avec un utilisateur Supinfo, créer une tâche cron qui permet d'afficher "Etudiez linux" et ce
chaque 30 minutes du lundi au vendredi. Faites le en utilisant la commande crontab.
* Editer la crontab afin de bien vérifier qu'elle a bien été créé. Une fois la tâche effectuée, refaire la même
chose mais en supprimant votre tâche avant qu'elle ne s'exécute.
Q:
* Utiliser at qui exécutera des commandes à 16 heures, à minuit et dans 6 heures. Une fois ces tâches programmées, éditez les toutes afin de vérifier qu'elles ont bien été prises en compte. Puis effacer la 2ème
commande sur les 3 présentes.
15
Chapitre 8. Configuration réseau
Table des matières
8.1. Configuration manuelle et automatique ...............................................................................15
8.1. Configuration manuelle et automatique
Q:
Quelle est la commande permettant de configurer ses interfaces réseau ?
Q:
Quelles sont les trois commandes permettant de s'attribuer une adresse IP dynamiquement ?
Q:
Comment installer une carte Wifi si celle-ci n'est pas supportée sous Linux ?
Q:
Quelle est la commande qui vous permet de lister votre matériel ?
Q:
Comment ajouter une route par défaut sur notre système ?
Q:
Quel fichier est utilisé pour spécifier les paramètres DNS du réseau ?
Q:
Depuis votre machine virtuelle, interrogez le serveur DHCP de SUPINFO afin d'obtenir la connectivité
réseau.
Q:
Tentez de joindre le site www.supinfo.com
Q:
Affichez votre table de routage et notez l'adresse de votre passerelle( route par défaut )
Q:
Supprimez votre route par défaut, puis tentez de joindre www.supinfo.com : Que se passe-t-il ? Pourquoi
?
Q:
Avec votre voisin, mettez-en place une connexion directe par câble. Prenez les adresses IP 192.168.0.1 et
192.168.0.2
Q:
Sur les deux machines, testez la connectivité.
Q:
Affichez tous deux vos tables de routage. Que remarquez-vous ?
16
Chapitre 9. Sed et Awk
Table des matières
9.1. Sed ..............................................................................................................................16
9.2. Awk ............................................................................................................................16
9.1. Sed
Q:
Créer une expression régulière qui trouve une ligne commençant par Linux et finissant par Rulez, avec
n’importe quels caractères au milieu.
Q:
Créer une expression régulière qui reconnaît le motif d’une adresse email.
Q:
Créer une expression régulière qui reconnaît un nom de fichier (nom.extension) en 8.3
Q:
Créer une expression régulière qui reconnaît un nom d’utilisateur Linux valide
Q:
Avec l'aide de SED, afficher les 5 premières lignes, du fichier contenant les attributs des utilisateurs systèmes. Sauvegarder ses lignes dans un fichier de backup.
Q:
Vous voulez empêcher l'utilisation d'un shell à tous les utilisateurs systèmes, pour cela vous allez utiliser
une commande SED sur le fichier qui contient les attributs des utilisateurs systèmes. Pour des raisons de
sécurité n'éditez pas directement ce fichier mais plutôt un fichier de backup..
9.2. Awk
Q:
A l'aide de Awk, afficher la liste des utilisateurs présents sur le système ainsi que leurs répertoires personnels.
Q:
Formater le résultat de la commande ls -l pour afficher le propriétaire de chaque fichier listé.
Q:
Afficher le point de montage et la taille de chaque disque actuellement monté. Vous devrez classer ces résultats par ordre décroissant.
Q:
Afficher les 10 commandes que vous avez le plus utilisés sur votre machine:
Q:
En utilisant Awk, afficher les 20 premiers nombres de la suite de Fibonacci.
Pour rappel, la suite de Fibonacci définit qu'un nombre est obtenu par la somme des deux nombres le pré-
Sed et Awk
cédent.
Exemple: 0, 1, 1, 2, 3, 5, 8
17
18
Chapitre 10. Scripting BASH
Table des matières
10.1. Fichiers de configuration de Bash ....................................................................................18
10.1.1. Rappels ............................................................................................................18
10.1.2. Customisation de Bash ........................................................................................18
10.2. Scripting Bash .............................................................................................................19
10.1. Fichiers de configuration de Bash
10.1.1. Rappels
La configuration de bash se trouve à différents emplacements.
Au niveau du système, deux fichiers de configuration :
• /etc/profile (chargé juste après s’être loggué)
• /etc/bash.bashrc (chargé pour une session déjà logguée. Exemple : lors d'une session graphique, les
terminaux virtuels s’ouvrent sans demander de s’authentifier car l’utilisateur s’est déjà loggué).
Ces fichiers de configuration ne sont modifiables que par le root et affectent tous les utilisateurs du système.
Il est possible d'appliquer une configuration par utilisateur :
• ~/.bash_profile (chargé juste après s’être loggué)
• ~/.bashrc (chargé pour une session déjà logguée)
Au démarrage du shell, Bash va automatiquement charger la configuration système puis ensuite la configuration
propre à l’utilisateur en cours. Le chargement de la configuration se fait par un « source » de chacun des fichiers
de configuration.
10.1.2. Customisation de Bash
Q:
Modifier la configuration de votre bash afin d'obtenir un message de bienvenue tel que le suivant lors de
l'ouverture d'un terminal :
Bienvenue <Nom de l'utilisateur> - Nous sommes les <date du jour> et il est <heure du
Ce système de type <Type d'OS> tourne depuis <Temps d'activité du système>
Message du jour :
< Afficher ici le contenu de /etc/motd (créer/remplir ce fichier le
cas échéant) >
Scripting BASH
Astuce
Le type de système d'exploitation est donné par la commande uname -o. Le temps d'activité
du système est donné par la commande uptime.
Q:
Créer différents aliases et vérifier qu'ils fonctionnent. Faire en sorte qu'ils soient chargés au démarrage de
votre bash.
Q:
Modifier le prompt (variable d'environnement PS1) afin d'obtenir un prompt qui ressemble à celui-ci :
[ Heure courante ] nom d'utilisateur @ nom de la machine / nom du terminal ( repertoire courant ) $
Exemple :
[13:23] supinfo@localhost/2 (~) $
Astuce
Bash peut récupérer la plupart de ces données pour vous. Aidez-vous de la section PROMPTING du manuel de bash.
10.2. Scripting Bash
Cette première partie permet de se familiariser avec les notions du scripting bash en développant de petits
scripts pour bien comprendre les bases.
Note
Tout au long de ce TP ne négligez pas les sources d'informations utiles que sont :
• man bash
• Google
Vérifiez aussi attentivement ce que vous avez tapé lorsque vous rencontrez des erreurs.
19
Scripting BASH
Dans le dossier personnel de l'utilisateur, créer un dossier « bin ». Tous les scripts créés durant ce TP devront se trouver à l'intérieur.
Q:
Créer un fichier contenant du texte et ajouter la ligne suivante « #! /usr/bin/vim » au début du fichier. Rendre ce fichier exécutable et l'exécuter. Que se passe t-il et pourquoi ? Comment se nomme la
ligne ajoutée en tête de fichier ?
Q:
Créer un fichier qui copie le fichier /var/log/messages et qui vide cette copie.
Note
L'accès au fichier /var/log/messages est réservé à l'utilisateur root.
Q:
Créer un fichier qui ne garde que les 20 dernières lignes du fichier /var/log/messages.
Q:
Modifier le script précédent pour que le nombre de lignes à conserver puisse être paramétrable.
Q:
Faire en sorte que bash puisse exécuter les scripts se trouvant dans le répertoire « bin » uniquement en
tapant leur nom. Exemple : au lieu de faire « /chemin/vers/mon_script » pouvoir faire «
mon_script ».
Q:
Créer un script permettant d'effectuer une sauvegarde de votre répertoire personnel sous la forme une archive compressée dans le répertoire /var/tmp. Le nom dépendra de sa date de création : archiveDD-MM-YYYY.tar.gz. (DD : jour, MM : mois, YYYY : année).
Q:
Modifier le script précédent pour que le répertoire à sauvegarder ainsi que le répertoire de destination
puissent être redéfinis par des variables d'environnement.
Q:
Planifier l'exécution du script précédent pendant l'heure en cours et celle à venir à des intervalles de 10
minutes. Vérifier l'exécution du script planifié.
Q:
Créer un script qui permette à l'utilisateur de choisir son éditeur préféré entre vim, nano et ed. Exécuter le
script et vérifier la modification du choix de l'éditeur via crontab -e.
Q:
Créer un script d'administration permettant d'ajouter un utilisateur. Le script devra interroger l'utilisateur
afin de connaître les informations suivantes :
• le nom de l'utilisateur à créer
• répertoire personnel (Par défaut : /home/login)
• répertoire modèle (Par défaut : /etc/skel)
• le shell (Par défaut : Bash)
20
Scripting BASH
• la date d'expiration (Par défaut : aucune)
• le password
• l'éditeur préféré (il faudra donc modifier le .bashrc de l'utilisateur créé)
Le script devra vérifier que l'utilisateur qui le lance est bien le root. Dans le cas contraire, il devra afficher
une note expliquant qu'il faut le lancer en tant que root, puis se terminer.
Le script devra gérer les erreurs et avertir proprement l'utilisateur. (ex: utilisateur ou répertoire personnel
existant déjà, valeur invalide rentrée par l'utilisateur, etc).
21
22
Chapitre 11. Le serveur X
Table des matières
11.1. Avant de commencer .....................................................................................................22
11.2. Configuration et premier lancement du serveur X ...............................................................22
11.3. Lancement d'une session graphique ..................................................................................23
11.4. Configuration d'un display manager .................................................................................24
11.5. X11 Forwarding avec SSH .............................................................................................24
11.1. Avant de commencer
Avant de commencer, nous allons préparer le système pour la bonne réalisation du TP.
Q:
Installez les outils X11 disponibles dans les paquets suivants twm, xclock et xeyes :
Q:
Si vous avez démarré une session graphique, coupez-la à l'aide du raccourci clavier suivant : Ctrl + Alt +
Backspace.
Q:
Faites une copie du fichier de configuration du serveur X dans votre dossier personnel. Supprimez ensuite
le fichier de configuration original.
Astuce
Les fichiers relatifs au serveur X se trouvent le plus souvent dans le répertoire /etc/X11.
11.2. Configuration et premier lancement du serveur X
Q:
Lancez la configuration automatique du serveur X (option -configure de X) afin de générer un fichier
de configuration générique.
Q:
Lancez ensuite X avec le fichier de configuration auto-généré.
Q:
Afin de configurer X de façon plus précise, configurez le serveur grâce à la commande intéractive xorgconfig.
Le serveur X
Astuce
Aidez-vous de la commande lspci pour répondre aux questions.
Cette commande permet d'afficher la liste du matériel branché sur les ports PCI. C'est une
commande très utile pour obtenir des informations précises sur le matériel (marque, révision,
chipset, etc.).
11.3. Lancement d'une session graphique
Q:
Lancez ensuite le serveur X11 avec la commande startx et vérifiez son bon fonctionnement. En cas de
problème, recopiez le fichier de configuration que vous avez sauvegardé au début du TP.
Q:
En tant qu'utilisateur supinfo, éditez le fichier ~/.xinitrc (le créer s'il n'existe pas) pour pouvoir lancer le gestionnaire de fenêtres « twm » ainsi que les applications suivantes : xterm, xeyes et xclock.
Note
La commande startx se charge de lancer le serveur X puis d'exécuter les commandes se
trouvant dans les fichiers /etc/X11/xinit/xinitrc et ~/.xinitrc.
Si le fichier ~/.xinitrc est trouvé, son contenu est exécuté. Sinon, startx cherche le fichier /etc/X11/xinit/xinitrc et exécute son contenu.
Q:
Lancez startx et vérifiez le résultat.
Q:
Sans fermer votre session X, basculez sur un terminal virtuel libre, connectez-vous en tant que root et lancez une nouvelle session graphique avec startx, mais cette fois-ci sur le DISPLAY N°1.
Basculez ensuite entre la session graphique de l'utilisateur root et celle de l'utilisateur supinfo et vice-versa.
Note
Par défaut, startx lance le serveur X sur le DISPLAY N°0. Pour préciser, un autre DISPLAY, il faut utiliser la commande de la façon suivante :
startx -- :NuméroDuDisplay
Q:
Quittez les 2 sessions graphiques puis effacez le ~/.xinitrc de l'utilisateur supinfo.
23
Le serveur X
24
11.4. Configuration d'un display manager
Dans cette partie, nous allons mettre en place un display manager.
Le display manager est le programme qui affiche l'invitation de connexion de manière graphique. Ce programme est chargé de lancer une session graphique (environnement + applications) après que l'utilisateur se soit
authentifié.
Le display manager tourne en arrière plan : c'est un DAEMON. Pour le démarrer ou l'arrêter il faut donc passer
le script d'init se trouvant dans /etc/init.d. Sous Mandriva ce script s'appelle dm.
Nous allons tout d'abord installer XDM (X Display Manager), le display manager par défaut de l'environnement
X.org. C'est un display manager très simple et peu gourmant en mémoire.
Puis nous allons installer le display manager plus complet GDM (GNOME Display Manager).
Q:
Installez XDM via urpmi (paquet xdm).
Q:
Désactivez le login automatique en éditant le fichier /etc/sysconfig/autologin et en mettant la
valeur AUTOLOGIN à no.
Q:
Assurez-vous qu'aucune session graphique n'est lancée puis lancez XDM via son script d'initialisation.
Vérifiez que vous pouvez vous connecter à votre session X.
Q:
Coupez XDM puis installez GDM (paquet gdm).
Avertissement
Couper un display manager provoque l'arrêt de toutes les sessions graphiques lancées par
lui.
Q:
Désactivez la connexion automatique de l'utilisateur supinfo en modifiant le
etc/X11/gdm/gdm.conf et en supprimant la ligne AutomaticLogin=supinfo.
fichier
/
Q:
Relancez le script d'initialisation du display manager et constatez que GDM se lance maintenant à la place
de XDM.
Note
Sous Mandriva, c'est l'ordre des fichiers se trouvant dans /etc/dm.d qui définit quel est le display manager qui sera lancé.
La commande /etc/X11/lookupdm affiche le display manager qui sera choisi.
11.5. X11 Forwarding avec SSH
Le serveur X
Q:
Lancez une session X en tant que supinfo puis faites en sorte que seul votre partenaire ait accès à votre
session X et vice-versa.
Astuce
La commande xhost permet de définir les autorisations de connexions à une session X11.
Q:
Connectez vous en liaison sécurisée (SSH) sur la machine de votre partenaire et lancez son navigateur
Web (installez-le au préalable si nécessaire). Faites-en sorte que la fenetre de l'application s'affiche chez
vous, puis chez lui.
Astuce
La variable d'environnement DISPLAY permet de définir la session X à utiliser.
25
26
Chapitre 12. Installation de programmes
Table des matières
12.1. Travaux Pratiques : Installation de programmes ..................................................................26
12.1.1. Installation de paquetages avec les outils urpm* ......................................................26
12.1.2. Installation depuis les sources ...............................................................................26
12.1. Travaux Pratiques : Installation de programmes
12.1.1. Installation de paquetages avec les outils urpm*
Q:
Supprimer tous les médias configurés
Q:
Ajouter les médias correspondant à la distribution tels que générés par le site http://easyurpmi.zarb.org
Q:
Mettre à jour la liste des paquets disponibles.
Scénario : L'utilisateur supinfo souhaite publier des documents sur Internet. Vous décidez donc d'installer le serveur Web Apache et ce avec le minimum d'effort.
Q:
Installer les paquetages apache et apache-mod_userdir.
Q:
Lancer le serveur grâce à la commande /etc/init.d/httpd start.
Q:
En tant qu'utilisateur supinfo, créer un répertoire ~/public_html. Ajouter un fichier index.html
contenant une phrase de bienvenue dans ce répertoire.
Q:
Installer le navigateur web Firefox et accéder à la page web personnelle de l'utilisateur supinfo à l'adresse
http://localhost/~supinfo.1
12.1.2. Installation depuis les sources
Scénario : L'administrateur souhaite installer depuis les sources le client FTP ncftp. Les étapes seront effectuées
autant que possibles avec l'utilisateur non priviligié supinfo.
Q:
1
???
Grâce
à
wget,
télécharger
le
fichier
ftp://ftp.ncftp.com/ncftp/ncftp-3.2.1-src.tar.bz2.
suivant
:
Installation de programmes
Q:
Décompresser l'archive et rentrer dans le répertoire décompressé.
Q:
Configurer l'application pour qu'elle s'installe dans /usr puis lancer la compilation.
Q:
Passer en root et lancer l'installation de l'application.
Q:
En tant qu'utilisateur supinfo, lancer l'application.
27
28
Chapitre 13. Machines virtuelles
Table des matières
13.1. Qemu .........................................................................................................................28
13.2. Emulation à l'aide de Wine .............................................................................................28
13.1. Qemu
Dans cet exercice, vous devrez installer Qemu et faire démarrer un LiveCD Linux à l'intérieur.
Q:
Installez Qemu à l'aide du gestionnaire de paquetage de Mandriva.
Vous
pouvez
télécharger
le
LiveCD
de
Damn
Small
Linux
à
cet
endroit
:
http://ftp.belnet.be/packages/damnsmalllinux/current/dsl-4.0-syslinux.iso. Pour rappel Damn Small Linux est
l'une des plus petites distributions Linux existante en terme de place et donc l'une des plus légères au point de
vue consommation de ressources.
Q:
Téléchargez le CD de Damn Small Linux.
Q:
Lancez Damn Small Linux à l'aide de Qemu en supportant le réseau, avec un clavier français.
13.2. Emulation à l'aide de Wine
Q:
Installez wine à l'aide des utilitaires Mandriva.
Q:
Nous allons maintenant installer et exécuter mIRC à l'aide de Wine. mIRC est un client IRC (Internet Relay Chat) très populaire sous Windows. Récupérez les fichiers d'installation à partir du site officiel :
http://www.mirc.com.
29
Chapitre 14. Le noyau
Table des matières
14.1. Manipulation des modules du noyau .................................................................................29
14.2. Compilation du noyau ...................................................................................................30
14.3. Configuration du bootloader ...........................................................................................31
14.1. Manipulation des modules du noyau
Note
N'oubliez pas que si vous utilisez une machine virtuelle pour faire ce TP, le matériel vu par le système émulé peut être complètement différent de votre configuration matérielle réelle.
La commande lspci vous sera donc utile pour savoir quel est le matériel émulé.
Q:
Connectez-vous en tant que root et affichez la version du noyau actuellement chargé en mémoire.
Q:
Affichez la liste des modules chargés.
Q:
Affichez les informations sur le module pcnet32.
Q:
Vérifiez que vous avez accès à internet. Lancez le client DHCP si nécessaire.
Q:
Déchargez le module pcnet32.
Q:
Testez votre connectivité à Internet. Quel est le problème ?
Q:
Rétablissez votre connectivité à Internet.
Le noyau
Q:
Reconstruisez la liste des dépendances des modules.
14.2. Compilation du noyau
Q:
Téléchargez la dernière version stable de la branche 2.6 du noyau sur http://kernel.org.
Q:
Décompressez l'archive dans /usr/src.
Note
Par convention, on décompresse les sources du noyau dans le répertoire /usr/src.
Dans ce répertoire, un lien linux doit pointer sur le répertoire des sources du noyau, de
sorte que le chemin /usr/src/linux soit valide et pointe toujours sur les sources actuelles du noyau.
Q:
Lancez l'écran de configuration et vérifiez que le support est activé : pour la carte réseau, pour vos disques
IDE et SCSI et pour vos systèmes de fichiers.
Astuce
N'oubliez pas que pour démarrer, le noyau doit pouvoir monter la partition /. Cette partition
étant sur un disque dur SCSI et formatée en ext3, le noyau disposer les fonctionnalités suivantes en dur :
• La gestion des périphériques SCSI en général
• La gestion du chipset SCSI utilisé par votre machine
• La gestion des disques durs SCSI
• Le support du système de fichiers ext3
La gestion du chipset réseau n'est pas nécessaire au démarrage, elle peut donc être activée en
module.
Q:
Quittez la configuration et sauvegardez les changements.
30
Le noyau
Q:
Lancez la compilation du noyau, puis des modules.
Avertissement
Sur une machine virtuelle, cette étape prend énormément de temps (environ 1 heure).
De plus, il vous faudra probablement plusieurs essais avant de parvenir à un noyau capable
de démarrer sans erreur.
Q:
Où se trouve l'image du noyau qui a été compilé ? Copier cette image dans /boot sous le nom vmlinuz-version_du_noyau.
14.3. Configuration du bootloader
Q:
Installer et configurer LILO pour démarrer sur vos noyaux. Ré-installez LILO sur le MBR et redémarrez
le système pour observer les changements.
Note
LILO est un bootloader pour plateforme de type Intel x86. Il offre beaucoup moins de fonctionnalités que GRUB car il réside entièrement en MBR. Cela signifie qu'il n'est pas lié aux
partitions du système, mais aussi qu'il faut réinstaller LILO dans le MBR à chaque modification de son fichier de configuration (/etc/lilo.conf).
Q:
Maintenant configurez GRUB pour charger vos noyaux. Créer le fichier configuration de GRUB (/
boot/grub/menu.lst) si celui-ci n'existe pas.
Note
La principale différence entre Lilo et GRUB c'est que GRUB n'a pas besoin d'être réinstallé
sur le MBR après chaque changement de configuration.
L'inconvénient majeur c'est que GRUB est dépendant de la partition sur laquelle se trouve
son fichier de configuration. En cas de suppression de cette partition, GRUB se trouve dans
l'incapacité de fonctionner.
31
Le noyau
Q:
Installez GRUB sur le MBR et relancez le système pour constater les changements.
32

Documents pareils