Devoir 1 - Utilisation de Linux

Informations generales

Date limite: 21 Mars, 23:55
Temps de travaille: 13 jours
Pointage: 1p sur la note finale

Mises a jour du l'enonce:

  • Il n'y a pas des mises a jours

Si vous avez des questions en ce qui concerne le devoir, vous pouvez les mettre sur le repository questions.

Chaque question va être mis comme un issue avec l' étiquette Devoir 1.

Connaissance évaluée

  • L'installation, la configuration, l'utilisation de la machine virtuelle
  • L'utilization du checker
  • Se familiariser avec l'environnement de travail du devoir
  • La révision pour utiliser des commandes Linux

Les machines virtuelles Devoir 1

Pour télécharger la machine virtuelle vous devez utiliser les mêmes donnes que vous les avez pour accéder la plateforme Moodle.

Pour l'authentification, la machine virtuelle a le compte student avec le mot de passe student et il y a des permissions sudo .

Verifier le devoir

Tester le devoir: le test va être effectue sur la machine virtuelle autentifie avec l'utilisateur student, en utilisant uso. Cela peut être exécute tout le temps pour vérifier si les taches ont été bien résolues. N'essayez pas authentifier avec l'utilisateur root pour aucun devoir. Ça peut être une raison pour l'échec des taches. Du l'autre cote, c'est pas bien pour la sécurité de travailler comme root.

L'utilité uso met en ouvre que les tests pour les taches du devoir actuel. Pour utiliser l'utilitaire uso, la première pas est de lancer Devoir 1 en utilisant sudo uso start 1. Si vous ne faites pas ca, vous n'aurez pas le checker mis en ouvre pour le devoir actuel.

Vérifier la version du checker, montre a l'utilisation du commandé sudo uso version. Soyez sûr que vous avez la dernière version avant de continuer le travaille pour le devoir. La version actuelle est montre dans la section Informations générales pressente dans l'énonce du devoir. Si vous n'avez pas la dernière version, lancez sudo uso update.

L'achemvement du devoir va etre complete en outlisant la commande sudo uso submit.

Syntaxe

La syntaxe utilise par checker est uso [OPTION]…[OPTION]… représente une liste de paramétrer optionnelles et peut avoir une des valeurs suivantes. Dans le cas quand n'est pas spécifié aucun paramétré OPTION, l'action l'action par défaut est d'exécuter le paramètre check.

  • version : Afficher la version curant de l'exécutable uso.
  • check : Vérifie le devoir actuel dans son intégralité et affiche les scores pour chaque tâche.
  • check N : Où “N” est le numéro de tâche dans l'instruction.
  • update : Met à jour à la fois le checker de thème actuel et l'exécutable “uso”. La recommandation est de «mettre à jour» chaque fois qu'il est annoncé sur le forum que le checker a été mis à jour.
  • start N : Téléchargez les exécutables nécessaires pour qu'un nouveau devoir fonctionne. Il peut restaurer un devoir dans sa configuration d'origine, uniquement s'il est spécifié dans l'exigence du devoir.
  • Une devoir a plusieurs taches.
  • Vous n'êtes pas obligé d'exécuter uso start avant chaque tâche.
  • Vous ne pouvez pas commencer à travailler sur un nouveau thème sans l'exécuter uso start
  • submit : Complétez le sujet.

À l'exception des paramètres version et check , tous les autres nécessitent la présence d'une connexion Internet.

Finaliser le devoir avec la commande uso submit est obligatoire! Même après avoir téléchargé le code, NE PAS modifier les fichiers de thème! S'il y a des problèmes dans la correction du thème, et que les fichiers ont été modifiés après la soumission du code, les appels ne seront pas pris en compte. Vous pouvez travailler sur la machine virtuelle sans aucun problème, à condition que les fichiers ou les conditions de fonctionnement de toute tâche du thème précédent ne soient pas modifiés.

Les étapes

Retenez que toute utilisation de l'utilitaire uso se fera uniquement via l'utilisateur student, mais avec des droits privilégiés (en utilisant sudo devant vous). La seule exception concerne la commande uso version, qui ne doit pas utiliser de droits privilégiés.

A ce moment, nous considérons que la machine virtuelle est correctement enregistrée avec le compte utilisateur correspondant à chaque étudiant. Si cette condition est remplie avec succès, les étapes de travail habituelles pour un thème se trouvent ci-dessous.

  1. on commence la devoir avec uso start N où N este le devoir actuelle.
  2. on verifie la devoir avec uso check
    1. pour vérifier une seule tâche, nous pouvons utiliser la commande uso check N, où N représente le numéro de la tâche
    2. exemple: uso check 4
  3. si les résultats de l'étape précédente ne sont pas corrects, répétez les étapes 2 et 3
  4. sinon, le devoir est complété en utilisant uso submit.
  5. on va laisser les fichiers du devoir - ne pas supprimer les fichiers (pour un éventuel appel, si nécessaire)
  6. si des modifications sont apportées aux exercices après la soumission des devoirs, répétez les étapes 2, 3, 4, 5 et 6
  7. cela n'est autorisé que si le délai n'a pas été dépassé
  8. à tout moment pendant le cycle ci-dessus, il peut être exécuté uso update.

Vous pouvez soumettre le devoir (étape 3.a) quand vous le souhaitez (si vous apportez des modifications au devoir), mais uniquement avant la date limite du thème . Seul le dernier code soumis avant la date limite sera pris en compte. Toute soumission après la date limite ne sera pas considérée.

L'utilitaire uso implémente des tests uniquement pour les tâches de thème en cours. Pour chaque nouveau thème, pour utiliser l'utilitaire uso , la première étape est de démarrer le thème à l'aide de la commande sudo uso start <numéro_devoir> . Sinon, le vérificateur de devoir actuel ne sera pas mis à jour.

Vérifiez la version du checker, affichée lors de l'exécution de la commande sudo uso version . Assurez-vous de disposer de la dernière version avant de continuer à travailler sur le thème. La version actuelle est spécifiée dans la section Informations générales de la déclaration de thème. Pour les situations où vous ne disposez pas de la dernière version du vérificateur, exécutez sudo uso update.

Le fin du devoir se fait en exécutant la commande sudo uso submit .

Les tâches

Est interdit de publier dans la section “issue” des commandes ou de photos qui font partie de la solution partielle ou complete du devoir ou d'une tache. A la premiere infraction l'etudiant va recevoir un avertissement, est le score final du devoir est reduit avec les score du tache en discussion. A la deuxieme infraction le devoir actuel sera annule. Les infractions restent disponible tout le semestre, elles ne sont pas annulees au debut d'un autre devoir. Chaque fois que la regle est brisee , on va verifier l'historique des infractions. Les infractions vont etre mis a jour dans le cathalogue.

Tâche 01 (0p)

La machine virtuelle

Le premiere pas est de lancer la machine virtuelle disponible. Les informations necessaires pour la lancer se trouvent ci-dessus.

Pour commencer, assurez-vous d'avoir téléchargé la machine virtuelle: https://repository.grid.pub.ro/cs/uso/USOTeme.ova

Import le fichier OVA dans le VirtualBox

Pour exécuter la machine virtuelle, vous devez importer le fichier OVA dans VirtualBox en y accédant File apoi Import Appliance, comme dans les images suivantes:

L'option permettant de sélectionner le chemin d'accès au fichier OVA que vous avez téléchargé apparaîtra, comme illustré ci-dessous.

Cette machine contient un certain nombre de configurations par défaut telles que: 1 cœur de processeur, 512 Mo de RAM. Nous les verrons ci-dessous. Assurez-vous que:

  • vous avez coché l'option “Reinitialize the MAC addresses of all network cards”

Ensuite, l'importation commencera et cela ressemblera à ci-dessous, soyez patient pour terminer:

Une fois l'importation terminée, assurez-vous d'en créer un host network: File → Host Network Manager → Create:

Démarrez la machine virtuelle et connectez-vous en utilisant votre nom d'utilisateur student et student. Vous le verrez dans le menu comme ci-dessous. Faites un clic droit dessus, START → Normal Start:

Recommandations:

  • Les paramètres de la machine virtuelle ne doivent pas être modifiés. Si, cependant, vous estimez qu'un changement est nécessaire, demandez d'abord sur le forum thématique s'il est accepté.
  • La machine virtuelle doit démarrer et le système d'exploitation doit se charger complètement sans interaction externe.
  • Ne changez pas le mot de passe de root et student

BIOS settings

  • Désactivez le démarrage sécurisé à partir du BIOS (surtout si vous avez Linux sur votre machine physique)
  • Activer la prise en charge de la virtualisation du BIOS (que vous ayez Windows ou Linux)

Chaque BIOS est différent en termes d'options et en naviguant ici, vous devrez rechercher sur le net comment y entrer et y apporter des modifications (généralement une touche de démarrage est enfoncée (.DEL ou F2) avant de démarrer le système d'exploitation)

BIOS - système input outout de base, un mini système d'exploitation (connu sous le nom de micrologiciel, installé dans la ROM) qui a quelques paramètres de base pour votre PC et fait une petite interface entre le matériel et le système d'exploitation réel

Vérifiez votre connexion Internet en exécutant la commande ping sur un site et vérifiez que le site répond (Hint: man ping )

Pour résoudre le devoir, vous avez toujours besoin d'une connexion Internet à l'intérieur de la machine virtuelle, mais la résolution de devoir ne nécessite pas de connexion Internet permanente. Pour tout problème, utilisez le forum sur Moodle. Ne continuez pas tant que vous n'êtes pas sûr de pouvoir accéder à Internet depuis la machine virtuelle!

À ce moment, la machine virtuelle a accès à Internet et la machine physique ( host ) peut communiquer avec la machine virtuelle ( guest ). La machine virtuelle peut démarrer dans un temps assez long, jusqu'à 120 secondes. La machine virtuelle a créé une port forwarding qui permet une connexion facile entre la machine physique et la machine virtuelle.

Tâche 02 (0p)

SSH

Le but du ce tache est de vous connecter de la machine phisique(appele host) a la machine virtuelle(appele guest) en utilisant le protocol SSH. Du Linux/macOS vous pouvez utiliser l'utilitaire ssh (man ssh), et du windows vous pouvez utiliser le logiciel PuTTy, que vous pouvez trouver sur le lien http://www.putty.org/, section Download PuTTy. Il suffit de choisir putty.exe en dessous de la section For Windows on Intel x86.

Pour accomplir cette tache, vous avez besoin de:

  • le nom d'utilisateur de la machine guest (student)
  • le mot de passe de la machine guest (student)
  • le IP (l'adresse) de l'interface sur laquelle on veut se connecter : localhost (Hint: c'est localhost parcequ'on a utilise port forwarding)
  • Le port de l'interface sur laquelle on se connecte : 2222

Vous pouvez vous connecter de la machine host a la machine guest avec un nombre pas limite des instances de programmes utlisees au-dessus.(ssh ou PuTTy). Sur Linux/macOS vous pouvez faire la meme chose en l'ouvrant sur la machine host un nouveau tab/terminal dans lequel vous allez vous connecter a la machine guest par SSH. Lancez la commande man ssh et chercher apres le parametre -l (L petit). Sur Windows vous pouvez faire la meme chose en l'ouvrent une nouvelle instance PuTTy et en introduisant comme IP localhost et comme port 2222.

Tâche 03 (10p)

Le checker

Le devoir est verifie automatiquement a l'aide d'un checker, installe sur la machine virtuelle, sous forme de l'executable uso. Le checker doit etre lance dans un terminal et il a besoin de droits privilegiees (sudo). Lire la manierre dans la quelle vous pouvez utiliser uso mode d'emploi.

Pour ce devoir vous devez vous inscrire le nom d'utilisateur et le mot de passe du http://fils.curs.pub.ro en outilisant uso et apres en suivant les instructions du terminal (qui vont vous conduire vers http://temeuso.cs.pub.ro).

Ne continuez pas tant que vous ne êtes pas connecté à https://temeuso.cs.pub.ro.

Après cela, nous devrons utiliser l'utilitaire uso et les instructions fournies par cette commande dans le terminal, grâce auxquelles nous associerons la machine virtuelle à votre compte.

Pour commencer, nous allons exécuter à partir du terminal:

student@vm-uso ~ $ sudo uso

ATTENTION!! Toutes les touches entrees au clavier dans la machine virtuelle sont enregistrees. Evitez d'entroduire des mots de passe ou des donnees sensibles/personnels.

Apres l'inscription, commencez le travaille sur Devoir 0.

student@student@vm-us ~ $ sudo uso start 1

Pour verifier si le devoir marche bien, lancez le checker.

student@vm-us ~ $ sudo uso check

Tâche 04 (35p)

[5p] Clonez dans le dossier /home/student le repository disponibile a l'adresse https://github.com/usoHomeworks/Tema1.git. Le dossier cree apres le clonage doit avoir le nom uso.

[25p] Ajoutez dans le dossier uso la structure de dossiers et fichers suivante:

Malware/
├── Computer Worms/
│   ├── Hall of fame/
│   │   ├── Morris
│   │   ├── Blaster Worm/
│   │   ├── Mydoom
│   ├── SQL $lammer
│   ├── Father Christmas/
│   └── Good Worms/
│       ├── XSS Worms/
│       ├── Welchia
│       └── Cheeze
├── Spyware/
│   ├── CoolWebSearch/
│   │   ├── Gator.c
│   │   ├── 180search Assistant.c
│   │   └── |STbar.c
│   ├── AUpdate/
│   │   └── Transponder
│   └── Internet Optimizer/
│       └── Hot as Hell
└── Ransomware/
    ├── WannaCry/
    │   ├── Mailto: `Netwalker'
    │   ├── Cerber/
    │   └── Bad > Rabbit
    └── Maze Ransomware/
        ├── Cryptomix.c
        └── Thanos

Les dossiers ont apres le nom le charactere /(slash).

Le scores est attribue du dossier racine vers les feuilles. Ca veut dire que vous pouvez faire des dossiers et fichiers qui se trouvent dans la structure et que le checker ne vas pas vous donner les points que si vous faites la structure dans une ordre. C'est pas un probleme. Si vouz creez l'ensemble de la structure, vouz pouvez creer les fichiers ou les dossiers dans n'importe quelle ordre et vous allez recevoir le scores completes.

[5p] Ajoutez le répertoire “Malware” et tous les fichiers contenus dans une archive nommée “archive.tar.bz2”, de type bzip compressé, dans le répertoire uso. (Hint: man tar)

Apres resoudre cette tache, il faut pas supprimer ou modifier le contenu du dossier ~/uso/Malware/. Il doit rester dans cette forme pour les verifications suivants du checker. Vous aller perdre les points obtenues pout cette tache si vous faites de modifications et il serra necessaire de refaire la tache.

Tâche 05 (12p)

[12p] Entrez dans le dossier uso, et utilisez une seule commande pour chaque tache suivante:

  1. Faites une copie du dossier Malware du dossier uso qui doit s'appeller Clone et qui doit se trouve toujours dans le dossier uso(maintenant, dans le dossier uso vous allez voire les deux dossiers: Malware et Clone).
  2. Dans le dossier Clone:
  3. Virez le dossier 'Mailto: `Netwalker' du WannaCry dans Father Christmas.
  4. Renommez Bad > Rabbit en Bad & Rabbit.
  5. Renommez SQL $lammer în $QL Slammer.
  6. Ajoutez le fichier |STbar.c dans le dossier Internet Optimizer.

Les tâches au-dessus doivent etre resolues dans l'ordre.

Apres la resolution du cette , il faut pas supprimer ou modifier le contenu du dossier ~/uso/Clone/. Il doit rester dans cette forme pour les verifications suivants du checker. Vous aller perdre les points obtenues pout cette tache si vous faites de modifications et il serra necessaire de refaire la tâche.

Tâche 06 (18p)

Dans le répertoire home/student/tema2-scripts , créez un script appelé users.sh qui trie les utilisateurs par ordre alphabétique à partir du fichier etc/passwd qui lance les services sur le système et affiche les noms et les services associés pour les 10 premiers. Les noms d'utilisateur et le service associé seront séparés par «:» (par exemple irc: irc). Le script affichera les informations dans le fichier /home/student/tema2-scripts-output/users.out .

Nous considérerons que tous les utilisateurs qui lancent des services dans le système ont attribué le shell /usr/sbin/nologin.

Tâche 07 (25p)

Dans le fichier /home/student/tema2-scripts/weather.sh , créez une ligne unique qui reçoit des arguments sur la ligne de commande. Les arguments se présentent sous la forme < Ville température météo> (par exemple, Bucarest 10 soleil). Le script effectuera les actions suivantes:

  1. (10 p) Il ajoutera une entrée sous la forme <Oras temperatura vreme> dans le fichier /home/student/tema2-scripts-output/weather.info .

Ex: lors de l'exécution de la commande ./weather.sh Bucuresti 10 soare , le fichier weather.info contiendra la ligne Bucuresti 10 soare.

Pour ce one-liner, n'ajoutez pas la ligne #!/bin/bash dans le fichier.

  1. (15p) Il stockera l'état actuel de la météo et de la température pour chaque ville dans le fichier live.info (si une ville existe, les informations seront mises à jour, si elles n'existent pas, une nouvelle entrée sera ajoutée). Chaque ligne du fichier live.info sera sous la forme Oras temperatura vreme.

Ex: Après d'exécuté les commandes ./weather.sh Bucuresti 10 soare et ./weather.sh Bucuresti 8 ploaie, le fichier live.info contiendra la ligne Bucuresti 8 ploaie.

Tâche 08(0p)

Finissez le devoir et soyez sur que vous l'avez envoye avec sudo uso submit.

Pour recevoir des points sur ce devoir, vous devez exécuter le vérificateur (avec le paramètre submit ) tandis que vous êtes connecté via SSH de la machine host à la machine guest . Ceci n'est obligatoire que dans cette rubrique. Pour les autres sujets, vous n'avez pas besoin d'être connecté via SSH lorsque vous faites submit .

student@vm-uso ~ $ sudo uso submit

Avertisment

C'est interdit aux etudiants de modifier les parametres de roulement de la machine virtuelle. Chaque tentative de modifications de fichiers et des executables de la machine virtuelle nous donne le droit d'offrir 0 points au devoirs de l'etudiant.

sde2/teme/tema_fr_1.txt · Last modified: 2021/03/10 16:31 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0