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 ?
Aucun commentaire:
Enregistrer un commentaire