Ligne de commande Unix #
Ce travail peut être réalisé sur différents matériels :
- machine virtuelle Unix
- machine physique Desktop Unix
- Raspberry Pi
Si vous le réalisez sur une Raspberry Pi, veillez à la fin à ce que tout soit parfaitement en ordre :
- raspberry protégée par un carton dans la boîte et sans la carte SD enfichée
- câble d’alimentation, attaché, dans la boîte
- lecteur de carte SD et carte SD (non enfichée dans le lecteur) dans la boîte
- boîte refermée, sans que le couvercle ne force
- clavier USB correctement rebranché au poste fixe
- Ethernet correctement rebranché au poste fixe
- Câble vidéo correctement rebranché au poste fixe
- Câbles d’alimentation correctement rebranchés
- Poste fixe démarré, avec la mire de login, le clavier et la souris fonctionnels
Prépréliminaires #
Vous avez des cartes RPI avec un système tout neuf. Lors du premier boot, on vous demandera de faire quelques choix :
- Choix du clavier
azerty
,french
Attention, ça peut mettre un peu de temps- Création du compte, mettez :
pi
pour le username etraspberry
pour le password afin de retomber sur une config standard
Préliminaires #
Commencez pas vous loguer sur le système. Les instructions varient selon le support et seront données durant le TP.
Avant toute chose, activez les messages :
Entrez la commande :
mesg y
Installez l’éditeur
micro
:sudo apt-get install micro
(patientez pendant l’installation)
À défaut d’interface graphique, bash
est le programme qui vous permet de
dialoguer avec le système (c’est un shell). Tous les systèmes Unix (dont
linux) ont un shell, et c’est très souvent bash
.
Lorsque vous lancez une commande, vous pouvez, si elle bloque, la couper
avec Ctrl+c
. Chaque fois que c’est possible, utilisez la complétion
automatique en appuyant sur la touche Tab. Utilisez l’historique des
commandes (flèche haut, flèche bas).
Il est très vivement conseillé de lire attentivement le document
Shell Unix
qui présente rapidement bash
et liste un certain nombre de commandes utiles.
Exercices #
Créez l’arborescence suivante dans votre Home :
exo01 |_ repertoire01 | |_ fichierA | |_ fichierB | |_ repertoire02 |_ fichierC |_ repertoire03 | |_ fichierD | |_ fichierE |_ repertoire04
Donnez un exemple de chaque commande qui vous permet de créer cette arborescence.
Lorsque ce sera fait, placez-vous à la racine de votre Home (
cd ~
) et entrez la commande suivante :find exo01 -type d ; find exo01 -type f
Donnez le résultat de l’exécution de cette commande (une photo convient).
Vérifiez qu’un câble ethernet est bien branché sur la raspberry. Normalement, votre raspberry est connue du serveur DHCP (le serveur qui attribue les adresse IP aux machines) et le réseau devrait être activé dès le branchement du câble ethernet.
Exécutez la commande
ip addr
. Fournissez (photo) le résultat de la commande. Quelle est votre adresse IP ? Quelle est votre adresse MAC ? (Si vous ne trouvez pas, appelez l’encadrant… peut être que le réseau n’est pas activé pour votre raspberry).
Une RPi est branchée dans la salle est disponible à l’adresse 192.168.81.131. Vous pouvez vous y connecter en SSH, avec le logiciel Putty (depuis un PC Windows) en utilisant le login
mee2
et le mot de passeXXX
(demandez le mot de passe en TP).Une fois connecté, vous verrez un fichier. Ce fichier contient une formule magique. Faites une copie d’écran de votre connexion et relevez la formule. Vous pouvez maintenant refermer la connexion et continuer sur votre raspberry.
Une archive contenant les fichiers d’exercices est en téléchargement.
Récupérer l’archive avec la commande :
curl https://ensip.gitlab.io/infomee/dist/archive_exercices_rpi.zip -O
À quoi sert l’option
-O
(consultez la page de manuel decurl
) ?Décompressez maintenant l’archive à la racine de votre répertoire (commande
unzip
). Un mot de passe vous est demandé. Il sera communiqué durant le TP.Hidden contentUn fichier
extraction_exercices.sh
vient d’apparaître dans le répertoire courant. Exécutez-le en faisant./extraction_exercices.sh
(mettez bien le./
). Donnez l’intégralité des commandes que vous entrez pour réaliser ces opérations (téléchargement, décompression…)Placez-vous à la racine de votre répertoire, faites
ls
. Vous devez voir le répertoireexo01
que vous avez créé tout à l’heure, ainsi que plusieurs autres répertoires :exo02
,exo03
… Si ce n’est pas le cas, appelez l’encadrant.
Dans les questions qui suivent, à la mode *CTF*, vous aurez souvent une clé à donner, pour prouver que vous avez fait la question. Si vous n’êtes pas sûr de la procédure. N’hésitez pas à demander à l’encadrant. Dans tous les cas, vous devrez aussi indiquer comment vous avez réussi à obtenir la clé.
Le répertoire
exo02
contient un fichierreadme
. Ce fichier contient une clé. Indiquez les commandes entrées et donnez la clé comme réponse.
Le répertoire
exo03
contient un fichierreadme
. Ce fichier contient une clé, ainsi que de nombreuses lignes blanches. Indiquez les commandes entrées et donnez la clé comme réponse. Proposez 2 manières différentes d’obtenir la clé.
Le répertoire
exo04
contient des fichiers et des dossiers, qui contiennent eux-mêmes des fichiers… Finalement combien de fichiers sont placés sousexo4
(éventuellement plusieurs niveaux dessous) ? Parmi tous ces fichiers, certains contiennent la lettre ‘A’ (majuscule) dans leur nom (dans le nom du fichier, pas dans le nom d’un répertoire qui contient ce fichier). Combien exactement ? Indiquez les commandes entrées.
Le répertoire
exo05
contient de nombreux fichiers. Un seul contient, entre autres, le motPASS
. Ce mot est suivi d’une clé. Donnez-la comme réponse et indiquez comment vous avez fait.
Le répertoire
exo06
contient un fichier caché (voir sur wikipedia) qui contient la clé.
Le répertoire
exo07
contient un dossier, qui contient lui même un fichier contenant la clé. Indiquez 2 manières différentes pour obtenir cette clé.
Le répertoire
exo08
contient un fichier nommé :cd
8-) . Rendez ce fichier exécutable (car c’est un programme), et exécutez-le pour obtenir la clé, sans le renommer.
Le répertoire
exo09
contient un fichier source en C qui affiche la clé. Vous devez le compiler et exécuter le programme pour l’obtenir.
Le répertoire
exo10
contient un fichier nommédata.txt
. Dans ce fichier, de nombreuses lignes sont identiques. La clé est la seule ligne qui n’apparaît qu’une seule fois.
Le répertoire
exo11
contient un fichier nommédata.bin
qui contient des données binaires. Vous pouvez le constater en essayant de l’ouvrir avec un éditeur de texte. Que se passe-t-il ? La clé est quelque part dans ce fichier. Elle est un peu plus longue que d’habitude (longueur 16).
Le répertoire
exo12
contient 2 fichiers :anciennes_cles
etnouvelles_cles
Entre ces 2 fichiers, seule une ligne a été modifiée. La clé que vous devrez retrouver et celle qui a été modifiée dansnouvelles_cles
.
Un peu plus de bash
avec GameShell
#
$ # apt-get install git
$ git clone https://github.com/phyver/GameShell.git
$ bash GameShell/start.sh