Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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: **zile**\\+Timp de lucru: **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>​ 
- 
uso-ac/teme/tema-3.1511463089.txt.gz · Last modified: 2017/11/23 20:51 by dennis.plosceanu
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