TP Linux mandriva Installation-configuration - TD système d'exploiatation linux
Système d’exploitation
TP : Installation/Configuration de Linux et Processus
L’objectif de ce TP est d’apprendre à installer le système Linux sur PC, et à configurer quelques éléments essentiels (mise en réseau, logiciels, utilisateurs).
Nous travaillerons avec la version Linux Mandriva 2007. Nous éviterons volontairement d’utiliser les outils de configuration graphiques, simples à utiliser mais souvents spécifiques à une distribution et masquant certains mécanismes importants du système.
Dans un cadre personnel, on installe généralement le système d’exploitation à partir de CDROM ou DVDROM (s’il n’est pas déjà installé, ce qui est souvent le cas). Afin d’éviter d’avoir à recopier de nombreux CD, nous utiliserons une installation via le réseau : le contenu des CDROMs de Linux sera distribué par un serveur, utilisant le protocole standard de partages de fichiers sous UNIX, NFS (Network File System).
Chaque PC va démarrer à partir d’un CD-ROM, puis aller chercher le programme d’installation et les logiciels sur le serveur. Vous veillerez à bien respecter le plan d’adressage IP (demandé par le programme d’installation) et à utiliser le réseau “IUT” (interface eth1) qui est configuré en 100Mbps/Full Duplex.
EXERCICE 1 - Installation
On suivra à peu près les étapes suivantes :
1. Se procurer le CD d’installation (voir votre enseignant).
2. Démarrer votre PC avec le CD A l’invite (boot:), répondre alt0 (vous pouvez faire F1 avant pour voir l’aide). Attention, le clavier est à ce stade en QWERTY! Ensuite suivre les instructions : choisir NFS comme méthode d’installation.
3. Configuration réseau (utilisée pendant l’installation seulement, ne pas confondre avec la configuration réseau finale) :
– Adresse IP : 10.0.0.N, N = numero de prise
4. Configuration NFS
– Nom du serveur NFS : 10.0.0.S (S est donné par votre enseignant) ;
– Répertoire : demander à votre enseignant (IMAGEDIR ci-dessous).
5. Ensuite, paramètres d’installation
– sécurite : aucun (pas de parefeu) ;
– pas de configuration réseau ;
– choix des logiciels : sélectionner le minimum, choisir client réseaux, X11, ...
– créez un compte “etudiant” en plus du compte “root”.
6. L’installation prend entre 5 et 15 minutes.
EXERCICE 2 - Configuration de votre système linux
Lors du premier démarrage, l’installeur vous demande quelques informations.
Connectez vous en tant qu’utilisateur “etudiant”.
1- Configuration du réseau
Fichiers à modifier :
– /etc/hosts
– /etc/sysconfig/network
– /etc/sysconfig/network-scripts/ifcfg-eth1
Commandes à utiliser :
– /etc/init.d/network start|stop|status
– chkconfig
– ifconfig (sans arguments, pour afficher) ;
– ping, hostname (pour tester)
Objectifs :
a. Attribuer le nom“client-N” à votre machine ;
b. Attribuer l’adresse 10.0.0.N à votre interface eth1, et s’assurer que cette interface est bien activée au démarrage.
2- Montage NFS
Fichier à modifier :
– /etc/fstab
Commandes à utiliser :
– mount
– df
Objectifs :
1. monter le répertoire contenant les fichiers d’installation de Mandriva.
2. s’assurer que ce montage sera effectué automatiquement au démarrage.
3. Quel espace disponible sur le répertoire du serveur NFS ? Pouvez-vous y écrire un fichier ? Pourquoi ?
3- Ajout de logiciel, rpm
Commandes à utiliser :
– rpm
– which
Objectifs :
1. Afficher la liste des logiciels installés. Combien il y en a-t-il ?
2. Quelle version de Python est-elle installé ? Sur quelle machine (host) ce logiciel a-t-il été fabriqué ? Par quel distributeur (“vendor”) ?
3. A quel paquettage appartient la commande zcat ? Afficher la liste des fichiers fournis par ce paquettage. Quels autres paquettages sont nécessaires pour pouvoir installer zcat ?
4. Installer xemacs et dia (s’ils ne le sont pas déjà).
5. désinstaller sendmail.
4- runlevels
Commandes à utiliser :
– ls
– chkconfig
– init
Fichier à modifier :
– /etc/inittab
Objectifs :
1. Donner la liste des services lancés dans le niveau d’exécution 3 ;
2. Quels sont les services lancés dans le niveau 5 qui ne sont pas lancés dans le niveau 3 ?
3. Quel est le niveau d’exécution par défaut de votre système ? Changer le à 3.
5- /etc/rc.local
Modifier votre configuration pour que lors du démarrage du système, soit créé un fichier/tmp/biniou contenant une ligne d’information comme :
Systeme client-18 demarre a 13:06
EXERCICE 3 - Définition des utilisateurs (à traiter comme utilisateur)
1- Combien d’utilisateurs UNIX sont définis localement sur votre système ? Parmi ceux-ci, combien correspondent à des utilisateurs réels (humains ou humano¨ıdes) ?
2- Quel est le shell de l’utilisateur root ? Et celui de l’utilisateur halt ? A quoi sert ce dernier ?
3- Que fait la commande /sbin/nologin ? Quels comptes l’utilisent, pourquoi ?
EXERCICE 4 - Création d’utilisateurs et de groupes (à traiter comme administrateur (root))
-------------------------------------------------------------------------------------------------------
Gestion des utilisateurs
La création d’un utilisateur UNIX requiert au moins les étapes suivantes :
1. ajouter les informations dans les fichiers /etc/passwd et /etc/shadow, ou dans l’annuaire (NIS, LDAP ou autre) utilisé.
2. créer le répertoire de connexion de l’utilisateur, et y placer les fichiers de configuration minimaux ;
3. configurer si nécessaire le système de messagerie électronique (e-mail).
La création d’un utilisateur local (défini simplement sur votre système) est facilité par la commande useradd.
La création d’un groupe est similaire (mais sans création de répertoire), via la commande groupadd.
Le mot de passe d’un utilisateur est changé par la commande passwd. L’administrateur (root) peut changer le mot de passe d’un utilisateur quelconque en indiquant passwd login.
Pour ajouter un utilisateur à un groupe, on édite le fichier /etc/group.
Le shell d’un utilisateur est changé par la commande chsh.
useradd création utilisateur local
groupadd création groupe local
passwd modification mot de passe
chsh modification shell de login
-------------------------------------------------------------------------------------------------------
1- Lire la documentation de la commande useradd, puis créer quelques utilisateurs, dont un avec votre nom et prénom.
Immédiatement après création, quel est le mot de passe de l’utilisateur ? Pourquoi ?
2- Dans quels groupes sont vos utilisateurs ?
3- Créer un groupe tprt réunissant deux de vos utilisateurs (détaillez les étapes sur votre compte rendu).
EXERCICE 5 - Droits (commandes chown, chgrp, chmod)
1- Changer (en tant qu’utilisateur “etudiant”) les droits sur le compte “etudiant” afin que les autres utilisateurs ne puisse pas y accéder.
2- Créer un répertoire dans /tmp qui ne soit accessible (rx) que par les membres du groupe etudiant, puis y créer (toujours en tant qu’etudiant) un fichier toto qui soit lisible et modifiable par les utilisateurs du groupe etudiant, mais pas par les autres.
Tester (ajouter un autre utilisateur au groupe etudiant).
Les utilisateurs du groupe etudiant peuvent-ils supprimer le fichier toto ? Pourquoi ?
EXERCICE 6 - Droits d’accès
Exercice à traiter comme utilisateur (etudiant), non root !
1- Essayer (dans un shell etudiant) de supprimer ou de modifier le fichier /var/log/messages.
Que se passe-t-il ? Expliquer la situation à l’aide de la commande ls -l
2- A l’aide de la commande id, vérifier votre identité et le(s) groupe(s) auquel vous appartenez.
3- Créer un petit fichier texte (de contenu quelconque), qui soit lisible par tout le monde, mais pas modifiable (même pas par vous).
4- Créer un répertoire nommé secret, dont le contenu soit visible uniquement par vous même. Les fichiers placés dans ce répertoire sont-ils lisibles par d’autres membres de votre groupe ?
5- Créer un répertoire nommé connaisseurs tel que les autres utilisateurs ne puissent pas lister son contenu mais puissent lire les fichiers qui y sont placés. On obtiendra :
$ ls connaisseurs
ls : connaisseurs: Permission denied
$ cat connaisseurs/toto
<...le contenu du fichier toto (s’il existe)...>
6- Chercher dans le répertoire /usr/bin trois exemples de commandes ayant la permission SUID. De quel genre de commandes s’agit il ?
EXERCICE 7 - étude des processus UNIX
1- A l’aide de la commande ps, afficher la liste de tous les processus tournant sur votre machine, avec les informations suivantes :
USER nom de l’utilisateur propriétaire du processus
PID numéro d’identification
%CPU
%MEM
STAT Etat
START Date de début
TIME
COMMAND Commande utilisée pour lancer ce processus (vous vous aiderez du manuel (man ps) et du résumé (ps --help).
1. A quoi correspond l’information TIME ?
2. Quel est le processus ayant le plus utilisé le processeur sur votre machine ?
3. Quel a été le premier processus lancé après le démarrage du système ?
4. A quelle heure votre machine a-t-elle démarré ?
5. Pouvez-vous établir le nombre approximatif de processus créés depuis le démarrage (“boot”) de votre machine ?
2- Sous UNIX, chaque processus (excepté le premier) est créé par un autre processus, son processus père. Le processus père d’un processus est identifié par son PPID (Parent PID).
– Trouver une option de la commande ps permettant d’afficher le PPID d’un processus.
– Donner la liste ordonnée de tous les processus ancêtres de la commande ps en cours d’exécution.
3- Reprendre la question précédente avec la commande pstree.
4- Essayez la commande top, qui affiche les mêmes informations que ps mais en rafraichissant périodiquement l’affichage.
1. La touche ? permet d’afficher un résumé de l’aide de top. Afficher dans top la liste de processus triée par occupation mémoire (“resident memory”) décroissante.
2. Quel est le plus “gros” processus sur votre machine ? A quoi correspond-il ? (rappel : vous pouvez utiliser man truc pour découvrir ce que fait truc...).
EXERCICE 8 - Arrêt d’un processus.
1- Créer dans votre répertoire de connexion un nouveau répertoire nommé exo2. Ecrire dans un fichier compteur.c un programme suivant l’algorithme :
– i − 0
– Répéter infiniment :
1. i − i + 1
2. si i est multiple de 100 000, afficher i et un saut de ligne (\n).
2- Lancer l’exécution de ce programme et vérifier qu’il fonctionne. L’arrêter en tapant CTRL-C.
3- En utilisant les fonctionnalités du shell (&, fg, bg), lancer quatre instances du programme compteur en même temps. Mettre au premier plan la troisième, l’arrèter (CTRL-Z) puis la relancer en arrière-plan.
4- A l’aide des commandes jobs et kill %n, arrêter tous les compteurs.
5- Même question en utilisant les commandes ps et kill (avec un PID).
EXERCICE 9 - Révision sur les tubes
1- Quelle est la différence entre tee et cat ?
2- Que font les commandes suivantes :
$ ls | cat
$ ls -l | cat > liste
$ ls -l | tee liste
$ ls -l | tee liste | wc -l
EXERCICE 10 - Journal système (syslog)
1- Le service syslog est-il lancé sur votre système ? Dans quels runlevels ? Quel est le PID du démon ? Retrouvez-vous ce PID dans le répertoire /var/run ?
2- Le principal fichier de configuration de syslog est /etc/syslog.conf. Dans quel fichier syslog écrit-il les messages issus du service “cron”? Et la plupart des autres messages ? Vérifier le contenu de ces fichiers.
3- Que fait la commande tail -f ? A l’aide de cette commande, placer en bas de votre écran un fenêtre qui permette de visualiser en “temps réel” le contenu du fichier /var/log/messages. Que voyez-vous si vous redémarrez le service réseau (network) dans un autre shell ?
4- Expliquer à quoi sert le fichier /etc/logrotate.conf.
5- Examiner la sortie de la commande dmesg. Quel modèle de processeur linux détecte-il sur votre machine ? Quels modèles de cartes réseaux détecte-il ?
Article plus récent Article plus ancien