This shows you the differences between two versions of the page.
uso-ac:teme:tema-3 [2017/11/23 20:51] dennis.plosceanu |
uso-ac:teme:tema-3 [2017/11/29 17:44] (current) dennis.plosceanu [Informații generale] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <hidden> | ||
====== Tema 3 ====== | ====== Tema 3 ====== | ||
<note> | <note> | ||
Line 22: | Line 21: | ||
<note important> | <note important> | ||
- | Deadline: **29 Noiembrie, ora 23:55**\\ | + | Deadline: **4 Decembrie, ora 23:55**\\ |
- | Timp de lucru: **6 zile**\\ | + | Timp de lucru: **7 zile**\\ |
Punctaj: **0.8 puncte** din nota finală\\ | Punctaj: **0.8 puncte** din nota finală\\ | ||
Formular pentru trimitere temă: https://goo.gl/forms/vjzVNNczk5A29uLI3\\ | Formular pentru trimitere temă: https://goo.gl/forms/vjzVNNczk5A29uLI3\\ | ||
Line 30: | Line 29: | ||
<note> | <note> | ||
**Actualizări enunț:** | **Actualizări enunț:** | ||
+ | * 28 Noiembrie 2017 - precizare extra la Task04 punctul 2 | ||
+ | * 24 Noiembrie 2017 - Încă un tip la Task01 punctul 3 | ||
+ | * 23 Noiembrie 2017 - Tip în plus la Task01 punctul 3 | ||
+ | </note> | ||
+ | <note> | ||
+ | **Actualizări checker:** | ||
+ | * 26 Noiembrie 2017 V4 | ||
+ | * Task01 - verificare ca parola userului ''smith'' să fie ''smith'' | ||
+ | * Task05 - Ștergere de fișiere create de checker | ||
+ | * 25 Noiembrie 2017 V3 | ||
+ | * Task05 - Match case sensitive pentru verificarea tipurilor de date din tabelă | ||
+ | * 24 Noiembrie 2017 V2 | ||
+ | * Task03 - Adăugat mesaj de eroare în plus pentru un caz netratat (mai multe adrese IP pe o interfață) | ||
+ | * Task04 - Timeout mai mare pentru check-ul dacă script-ul send_to_all.sh cere parolă | ||
</note> | </note> | ||
===== Cunoștințe evaluate ===== | ===== Cunoștințe evaluate ===== | ||
Line 70: | Line 83: | ||
* **[4p]** Creați și porniți un container Docker cu numele ''dimension-c137'' care folosește imaginea descărcată la punctul anterior. Containerul trebuie să rămână pornit. Urmăriți exemplul [[https://docs.docker.com/engine/reference/commandline/run/#/assign-name-and-allocate-pseudo-tty---name--it|de aici]]. | * **[4p]** Creați și porniți un container Docker cu numele ''dimension-c137'' care folosește imaginea descărcată la punctul anterior. Containerul trebuie să rămână pornit. Urmăriți exemplul [[https://docs.docker.com/engine/reference/commandline/run/#/assign-name-and-allocate-pseudo-tty---name--it|de aici]]. | ||
* **[4p]** Instalați pachetele ''inetutils-ping'', ''iproute2'', ''openssh-server'', ''sshpass'' , ''sqlite3'', ''vim'' și ''sudo'' pe containerul ''dimension-c137''. | * **[4p]** Instalați pachetele ''inetutils-ping'', ''iproute2'', ''openssh-server'', ''sshpass'' , ''sqlite3'', ''vim'' și ''sudo'' pe containerul ''dimension-c137''. | ||
+ | <note tip> | ||
+ | Pot apărea probleme dacă încercați să instalați pachetele cu ''docker exec'', atașați-vă la containere cu ''docker attach'' și rulați de acolo. | ||
+ | O să primiți, probabil, în primă instanță ''Unable to locate package ...''. Trebuie să vă prindeți de ce :). | ||
+ | </note> | ||
* **[2p]** Adăugați utilizatorul ''smith'' pe containerul ''dimension-c137'' cu parola ''smith''. Setați directorul home al acestuia la ''/home/smith_residence'' și shellul la ''/bin/bash''. | * **[2p]** Adăugați utilizatorul ''smith'' pe containerul ''dimension-c137'' cu parola ''smith''. Setați directorul home al acestuia la ''/home/smith_residence'' și shellul la ''/bin/bash''. | ||
* **[6p]** Asigurați-vă că puteți realiza o conexiune ''ssh'' între mașina virtuală de USO (''usovm'') și containerul ''dimension-c137'' folosind userul ''smith''. | * **[6p]** Asigurați-vă că puteți realiza o conexiune ''ssh'' între mașina virtuală de USO (''usovm'') și containerul ''dimension-c137'' folosind userul ''smith''. | ||
Line 95: | Line 112: | ||
==== Task 03 (25p) ==== | ==== Task 03 (25p) ==== | ||
- | * **[2p]** Opriți interfața eth0 de pe containerul ''summer''. | + | * **[3p]** Opriți interfața eth0 de pe containerul ''summer''. |
- | * **[6p]** Configurați în mod static permanent, pe interfața ''eth1'' a containerului ''summer'' o adresă astfel încât să poată da ping cu succes pe adresele setate pe containerele rick si morty (atenție și la adresa setată pe interfața ''usobridge'' de pe host).Un container nu poate fi rebootat, testați faptul că ați făcut configurările corecte folosind comanda ''service networking restart'' în containerul ''summer''. | + | * **[7p]** Configurați în mod static permanent, pe interfața ''eth1'' a containerului ''summer'' o adresă astfel încât să poată da ping cu succes pe adresele setate pe containerele rick si morty (atenție și la adresa setată pe interfața ''usobridge'' de pe host).Un container nu poate fi rebootat, testați faptul că ați făcut configurările corecte folosind comanda ''service networking restart'' în containerul ''summer''. |
- | * **[6p]** Faceți configurările necesare atfel încât containerul ''summer'' să aibă conexiune la internet. Testați folosind comanda ''ping -c 2 8.8.8.8''. Configurarea trebuie să fie permanentă. | + | * **[7p]** Faceți configurările necesare atfel încât containerul ''summer'' să aibă conexiune la internet. Testați folosind comanda ''ping -c 2 8.8.8.8''. Configurarea trebuie să fie permanentă. |
- | * **[6p]** Configurați containerul ''morty'' astfel încât comanda ''ping google.com'' să se execute cu succes. | + | * **[8p]** Configurați containerul ''morty'' astfel încât comanda ''ping google.com'' să se execute cu succes. |
- | * **[5p]** Faceți configurările necesare pe mașina virtuală de USO (''usovm'') astfel încât să fie posibilă conectarea la containerele ''rick'', ''morty'' și ''summer'' folosind numele lor. De exemplu: | + | |
- | <code bash> | + | |
- | student@usovm:~$ ping rick | + | |
- | student@usovm:~$ ping morty | + | |
- | student@usovm:~$ ping summer | + | |
- | </code> | + | |
==== Task 04 (15p) ==== | ==== Task 04 (15p) ==== | ||
* **[7p]** Generați o pereche de chei [[https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm|ECDSA]] (id_ecdsa și id_ecdsa.pub) de lungime 384 biți în directorul ''/home/student/tema3/keys'' de pe mașina virtuală de USO (''usovm''). NU setați niciun passphrase pentru ele. | * **[7p]** Generați o pereche de chei [[https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm|ECDSA]] (id_ecdsa și id_ecdsa.pub) de lungime 384 biți în directorul ''/home/student/tema3/keys'' de pe mașina virtuală de USO (''usovm''). NU setați niciun passphrase pentru ele. | ||
* **[8p]** Faceți configurările necesare astfel încât userul ''student'' de pe host (''usovm'') să se poată conecta pe userii de pe cele 3 containere (''rick'', ''morty'', ''summer''), fără parolă, folosind cheile generate la subpunctul anterior (va trebui să faceți posibilă conexiunea prin ''ssh'' si pe containerul summer cum ați făcut și la task-ul 2 pentru ''rick'' și ''morty''). | * **[8p]** Faceți configurările necesare astfel încât userul ''student'' de pe host (''usovm'') să se poată conecta pe userii de pe cele 3 containere (''rick'', ''morty'', ''summer''), fără parolă, folosind cheile generate la subpunctul anterior (va trebui să faceți posibilă conexiunea prin ''ssh'' si pe containerul summer cum ați făcut și la task-ul 2 pentru ''rick'' și ''morty''). | ||
+ | |||
+ | <note important> | ||
+ | Atenție! Cheile nu trebuie copiate/mutate în alt director. | ||
+ | </note> | ||
==== Task 05 (20p) ==== | ==== Task 05 (20p) ==== | ||
Line 114: | Line 129: | ||
În urma primei rulări a checkerului pe acest task, pe cele 3 containere (''rick'', ''morty'', ''summer'') se va popula câte o bază de date folosind ''sqlite3''. | În urma primei rulări a checkerului pe acest task, pe cele 3 containere (''rick'', ''morty'', ''summer'') se va popula câte o bază de date folosind ''sqlite3''. | ||
* **[8p]** Creați în mașina virtuala folosind ''sqlite3'' (o sa trebuiască instalat pachetul) o bază de date numită ''rickandmorty.db'' (în ''/home/student/tema3/task5'') și în ea o tabelă nouă numită ''characters'' cu 3 coloane: | * **[8p]** Creați în mașina virtuala folosind ''sqlite3'' (o sa trebuiască instalat pachetul) o bază de date numită ''rickandmorty.db'' (în ''/home/student/tema3/task5'') și în ea o tabelă nouă numită ''characters'' cu 3 coloane: | ||
- | * name - string de maxim 50 de caractere, nu poate fi null | + | * name - varchar de maxim 50 de caractere, nu poate fi null |
* age - număr întreg | * age - număr întreg | ||
- | * episode - string de maxim 100 de caractere, nu poate fi null | + | * episode - varchar de maxim 100 de caractere, nu poate fi null |
* **[12p]** Scrieți un script ''select.sh'' în ''/home/student/tema3/task5'' de pe mașina virtuală care primește 2 argumente: | * **[12p]** Scrieți un script ''select.sh'' în ''/home/student/tema3/task5'' de pe mașina virtuală care primește 2 argumente: | ||
* numele unei baze de date (path către un fișier ''*.db'') | * numele unei baze de date (path către un fișier ''*.db'') | ||
Line 129: | Line 144: | ||
Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou (detalii [[uso:teme:instructiuni-checker#pasi|aici]]), până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte). | Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou (detalii [[uso:teme:instructiuni-checker#pasi|aici]]), până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte). | ||
- | </hidden> | ||
- |