Vous êtes sur la page 1sur 4

Administration et Sécurité Des SE (UNIX)

Correction TP : Gestion des paquetages


Niveau : 3A
AU : 2021-2022

Objectifs :
Le but de ce TP est de :
 Travailler sur la base RPM des packages déjà installés sur la machine et d’en
installer de nouveaux.
 Compiler les sources d’un serveur FTP appelé proftpd.
 Gérer les bibliothèques partagées liées au programme compilé dans la partie
précédente.

Environnement de travail :
 Machine virtuelle ou physique avec une distribution basée sur RPM et supportant
YUM : Red Hat, Fedora.

Travail demandé :

Partie 1 : Gestion des RPM & YUM


RPM (Red hat Package Manager)
1. Déterminer le nombre de packages RPM actuellement installés sur la machine.
rpm -qa | wc -l
1351
2. Vérifier que le package coreutils est bien présent sur le système, puis déterminer à quoi
il sert à l’aide de sa description.
Interroger la base RPM sur ce package pour en obtenir les informations :
rpm -qi coreutils
3. Supprimer le package coreutils. Quelle est la liste des dépendances qui empêche la
suppression ?
Essayer de supprimer en tant que root : # rpm -e coreutils
la liste de tous les packages qui empêchent sa désinstallation : plusieurs dizaines ! l’existence
du paramètre -R qui affiche de quoi dépend le package lui-même, et le –provides qui fournit le
nom des éléments fournis par le package.
$ rpm -q coreutils
$rpm -qR coreutils
4. Télécharger le package RPM du JRE (Java Runtime Environment) de Java présent sur
http://www.java.com/en/download/manual.jsp (il faut choisir la version correspondante
à l’architecture utilisée).
5. Installer le package téléchargé en indiquant la barre de progression.
# rpm -ivh jre-8u241-linux-x64.rpm
6. Si le package était déjà installé, comment le mettre à jour ? Sachant qu’il est déjà installé
maintenant, mettre à jour ce package de manière inconditionnelle. Dans quel cas cela
peut-il être nécessaire ?
C’est possible de mettre à jour le package avec les paramètres -U ou -F.
NB : l’installation du package peut se faire directement avec -U.
# rpm -Uvh jre-8u241-linux-x64.rpm
Simplement si le package est déjà installé dans la même version cela ne marche pas. Vous
pourriez avoir besoin de le faire si des fichiers de ce package ont été supprimés : leur
suppression, même complète, ne supprime pas le rpm de la base locale. Indiquez l’option --force
# rpm -Uvh --force jre-8u241-linux-x64.rpm

YUM (Yellowdog Updater Modified)


L’exécution de ces commandes nécessite une connexion internet.
Il faut activer la connexion internet en suivant ces étapes
ip addr show
la carte qui s’affiche
ifup ens33
ping 8.8.8.8
7. Comment faire la mise à jour ?
#yum update
8. Installer le package procps-ng ?
#yum install procps-ng
9. Pour connaître l’origine du package, afficher les informations qui le concernent.
#yum info procps-ng
10. Supprimer le package procps-ng dèjà installé ?
# yum remove procps-ng

Partie 2 : Installation à partir de la source


1. Télécharger les sources au format tar.gz dans le répertoire personnel en utilisant la
commande suivante :
$ wget https://github.com/proftpd/proftpd/archive/v1.3.6b.tar.gz
2. Décompresser les sources en utilisant la commande tar.
$ tar -xvzf v1.3.6b.tar.gz
3. Renommer le répertoire résultant de la décompression en « proftpd ».
$mv proftpd-1.3.6b proftpd
4. Accéder à ce répertoire.
$ cd proftpd
5. La configuration des éléments de compilation passe par l’exécution de la commande
./configure, installer le produit dans le dossier /opt/proftpd puis lancer la compilation.
$ ./configure --prefix=/opt/proftpd
6. Vérifier et installer si besoin les dépendances manquantes. Puis exécuter
Vérifier et résoudre si besoin les dépendances manquantes (C compiler) et autre. Puis exécuter
la commande
$ make
7. Après la compilation, installer proftpd. Comment éviter les problèmes de droits ?
À moins d’être root, il n’est pas possible d’installer le logiciel.
$ sudo make install
8. Si proftpd est correctement compilé, il doit pouvoir démarrer sans erreurs. Dans le cas
inverse, qu’a-t-il pu se passer ?
$ /opt/proftpd/sbin/proftpd --version
ProFTPD Version 1.3.6b

Remarque : Proftpd dépend de certaines bibliothèques qui doivent être préalablement installées
sur la machine.

Partie 3 : Les bibliothèques partagées


Dans cette partie, les étapes à suivre consistent à gérer les bibliothèques partagées liées au
programme compilé dans la partie précédente.
NB : laisser une console root ouverte ! La manipulation va avoir des effets secondaires
désastreux sur les droits.
1. Vérifier à quelles bibliothèques partagées est lié le programme proftpd.
La commande ldd permet de voir toutes les bibliothèques partagées utilisées par un programme
$ ldd /opt/proftpd/sbin/proftpd
2. Y-a-t-il une bibliothèque appelée libcrypt ?
Isoler la ligne recherchée
$ ldd /opt/proftpd/sbin/proftpd | grep -i libcrypt
Une seule ligne doit être retournée.
Sur la machine de test la bibliothèque est présente dans /usr/lib64/libcrypt.so.1.
3. Partant du principe (faux et dangereux) qu’aucun programme n’utilise la bibliothèque
partagée libcrypt.so.1, en tant que root il faut aller dans son emplacement et déplacer
tous les fichiers associés dans /tmp/lib. Exécuter ensuite la commande ldconfig.
Est-il possible de lancer proftpd ? Expliquer.
Créer le répertoire /tmp/lib
$ mkdir /tmp/lib

Se déplacer dans le chemin de la bibliothèque)


$ cd /usr/lib64/libcrypt.so.1

Déplacer les fichiers


sudo mv /usr/lib64/libcrypt.so.1 /tmp/lib

Exécuter proftpd. Il ne se lance pas


$ /opt/proftpd/sbin/proftpd
/opt/proftpd/sbin/proftpd: error while loading shared libraries:
libcrypt.so.1 : cannot open shared object file : No such file or directory

La commande ldd permet d’informer de la disparition de la bibliothèque déplacée


$ ldd /opt/proftpd/sbin/proftpd | grep -i libcrypt
libcrypt.so.1 => not found
4. Éditer le fichier de configuration /etc/ld.so.conf et rajouter le chemin /tmp/lib. Exécuter
à nouveau ldconfig puis relancer proftpd. Que se passe-t-il ?
Si l’utilisateur est bien le root, en rajoutant le chemin /tmp/lib puis en mettant à jour le cache du
chargeur dynamique avec ldconfig , la bibliothèque est de nouveau accessible.
Pour réaliser tout ceci, taper les commandes suivantes
# vi /etc/ld.so.conf
include /tmp/lib/libcrypt.so.conf
# ldconfig
# ldd ./proftpd
libcrypt.so.1 => /tmp/lib/ libcrypt.so.1
Le programme fonctionne à nouveau.
5. Comment remettre tout à l’état initial ?
Déplacer la bibliothèque vers sa position d’origine, supprimer /tmp/lib de ld.so.conf et relancer
ldconfig . Enfin, supprimer /tmp/lib.

Vous aimerez peut-être aussi