Differences

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

Link to this comparison view

uso:teme:tema-3-evil-hidden-page [2017/11/23 12:16]
dennis.plosceanu
uso:teme:tema-3-evil-hidden-page [2017/11/23 20:43] (current)
dennis.plosceanu
Line 22: Line 22:
  
 <note important>​ <note important>​
-Deadline: **8 Decembrie, ora 23:55**\\ +Deadline: **29 Noiembrie, ora 23:55**\\ 
-Timp de lucru: **zile**\\ +Timp de lucru: **zile**\\ 
-Punctaj: **0.puncte** din nota finală\\ +Punctaj: **0.puncte** din nota finală\\ 
-Formular pentru trimitere temă: https://​goo.gl/​39NdTB\\+Formular pentru trimitere temă: https://​goo.gl/​forms/​vjzVNNczk5A29uLI3\\
 </​note>​ </​note>​
  
 <​note>​ <​note>​
 **Actualizări enunț:** **Actualizări enunț:**
-  * **Task04**: A fost adăugată o precizare referitor la ce înseamnă prima adresă IP de pe o interfață de rețea în contextul acestui exercițiu (prima adresă în ordinea în care le afișează comanda ''​ip address show''​). 
-  * **Task04**: A fost adăugată o precizare legată de interfața de loopback și adresa MAC a acesteia. 
-**Actualizări utilitar ''​uso'':​ <color red>​versiunea v16 - "Gold Blackbird"</​color>​** 
-  * Nu există 
-**Actualizări checker: <color red>​versiunea 3</​color>​** 
-  * **Task04**: Înainte de versiunea 2, checkerul presupunea că pe fiecare mașină virtuală există interfața de rețea ''​enp0s8''​. 
-  * Înainte de versiunea 3, nu erau acceptate containerele care erau pornite cu ID-ul imaginii ''​i386/​ubuntu'',​ ci doar cu numele. 
  
 </​note>​ </​note>​
Line 46: Line 39:
   * folosirea utilitarelor de lucru cu mașini aflate la distanță;   * folosirea utilitarelor de lucru cu mașini aflate la distanță;
   * noțiuni simple de shell scripting;   * noțiuni simple de shell scripting;
-  * înlănțuiri de comenzi ​și comunicare eficientă interproces.+  * stocarea ​și prelucrarea datelor
  
 ===== Testarea temei. Finalizarea temei. Mașină virtuală. ===== ===== Testarea temei. Finalizarea temei. Mașină virtuală. =====
Line 81: Line 74:
   * **[2p]** Creați o imagine a containerului ''​dimension-c137''​ cu numele ''​dimension-c137/​ubuntu''​. **Hint**: ''​docker commit''​   * **[2p]** Creați o imagine a containerului ''​dimension-c137''​ cu numele ''​dimension-c137/​ubuntu''​. **Hint**: ''​docker commit''​
  
-==== Task 02 (25p) ====+==== Task 02 (15p) ====
  
 Checkerul va genera la prima sa rulare 3 containere care folosesc imaginea creată la Task 1: Checkerul va genera la prima sa rulare 3 containere care folosesc imaginea creată la Task 1:
Line 93: Line 86:
   * **[5p]** Configurați în mod static temporar, pe interfața ''​eth1''​ a containerului ''​rick'',​ a 11-a adresă asignabilă din rețeaua ''​192.168.137.0/​24''​.   * **[5p]** Configurați în mod static temporar, pe interfața ''​eth1''​ a containerului ''​rick'',​ a 11-a adresă asignabilă din rețeaua ''​192.168.137.0/​24''​.
   * **[5p]** Configurați în mod static temporar, pe interfeța ''​eth1''​ a containerului ''​morty'',​ ultima adresă asignabilă din rețeaua ''​192.168.137.0/​24''​. Testați conectivitatea între cele 2 containere prin intefețele ''​eth1''​ folosind comanda ''​ping''​.   * **[5p]** Configurați în mod static temporar, pe interfeța ''​eth1''​ a containerului ''​morty'',​ ultima adresă asignabilă din rețeaua ''​192.168.137.0/​24''​. Testați conectivitatea între cele 2 containere prin intefețele ''​eth1''​ folosind comanda ''​ping''​.
-  * **[5p]** Configurați cele 2 containere astfel încât fiecare să se poată conecta la celălalt prin ''​ssh''​ cu credențialele de mai sus. Conexiunea va folosi adresa IP asignată intefețelor eth1, nu eth0.+  * **[5p]** Configurați cele 2 containere astfel încât fiecare să se poată conecta la celălalt prin ''​ssh''​ cu credențialele de mai sus. Conexiunea va folosi adresa IP asignată intefețelor ​''​eth1''​, nu ''​eth0''​.
  
 <note important>​ <note important>​
Line 100: Line 93:
  
  
-==== Task 03 (20p) ====+==== Task 03 (25p) ====
  
-  * **[2p]** Opriți interfața eth0 de pe containerul ''​rick''​.+  * **[2p]** 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''​.   * **[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''​.
   * **[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ă.   * **[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ă.
-  * **[6p]** Configurați containerul ''​morty'' ​altfel ​încât comanda ''​ping google.com''​ să se execute cu succes. +  * **[6p]** 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'',​ ''​mortyi''​ și ''​summer''​ folosind numele lor. De exemplu:+  * **[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> <code bash>
 student@usovm:​~$ ping rick student@usovm:​~$ ping rick
Line 118: Line 111:
   * **[5p]** Scrieți un script ''​~/​tema3/​task4/​send_to_all.sh''​ (în home-ul userului ''​student''​ de pe mașina virtuală) care primește o cale către un fișier ca argument și trimite prin ssh (Hint: ''​man scp''​) fișierul primit ca argument în directoarele home ale utilizatorilor ''​rick'',​ ''​morty''​ și ''​summer''​ de pe containerele asociate fără a cere parolă. Puteți să presupuneți că argumentul primit de script este tot timpul valid.   * **[5p]** Scrieți un script ''​~/​tema3/​task4/​send_to_all.sh''​ (în home-ul userului ''​student''​ de pe mașina virtuală) care primește o cale către un fișier ca argument și trimite prin ssh (Hint: ''​man scp''​) fișierul primit ca argument în directoarele home ale utilizatorilor ''​rick'',​ ''​morty''​ și ''​summer''​ de pe containerele asociate fără a cere parolă. Puteți să presupuneți că argumentul primit de script este tot timpul valid.
  
-==== Task 05 (20p) ====+==== Task 05 (25p) ====
  
-Î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''​.
   * **[5p]** 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:   * **[5p]** 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 - string de maxim 50 de caractere, nu poate fi null
Line 129: Line 122:
     * numele unei tabele din baza de date     * numele unei tabele din baza de date
 Scriptul va trebui: Scriptul va trebui:
-    ​să selecteze din tabelă intrările care corespund utilizatorului curent (coloana name din tabelă conține numele utilizatorului care rulează scriptul) +  * să selecteze din tabelă intrările care corespund utilizatorului curent (coloana name din tabelă conține numele utilizatorului care rulează scriptul) 
-    să scrie rezultatul selecției în format ''​csv''​ într-un fișier numit ''​query.csv''​ în directorul home al utilizatorului curent+  ​* ​să scrie rezultatul selecției în format ''​csv''​ într-un fișier numit ''​query.csv''​ în directorul home al utilizatorului curent
  
 Pentru testare va trebui să aveți o tabelă în care să inserați date (preferabil creați o altă tabelă cu aceleași coloane ca și ''​characters''​ pentru că checker-ul va șterge la rulare toate datele din aceasta). Pentru testare va trebui să aveți o tabelă în care să inserați date (preferabil creați o altă tabelă cu aceleași coloane ca și ''​characters''​ pentru că checker-ul va șterge la rulare toate datele din aceasta).
Line 140: Line 133:
     * numele unei baze de date (path către un fișier ''​*.db''​)     * numele unei baze de date (path către un fișier ''​*.db''​)
     * numele unei table in baza de date     * numele unei table in baza de date
-Scriptul va trebui să ruleze **prin ssh** scriptul ​`select.shpe userul și ip-ul primite ca argument. +Scriptul va trebui să ruleze **prin ssh** scriptul ​''​select.sh'' ​pe userul și ip-ul primite ca argument. 
-Scriptului ​`select.shi se vor da argumentele 3 și 4 (numele bazei de date si al tabelei).+Scriptului ​''​select.sh'' ​i se vor da argumentele 3 și 4 (numele bazei de date si al tabelei).
  
 Apoi scriptul va trebui să copieze **prin ssh** (Hint: ''​man scp''​) fișierul rezultat în urma comenzii rulate (fișierul ''​query.csv''​) în **directorul curent** și cu numele ''​query_remote.csv''​. Apoi scriptul va trebui să copieze **prin ssh** (Hint: ''​man scp''​) fișierul rezultat în urma comenzii rulate (fișierul ''​query.csv''​) în **directorul curent** și cu numele ''​query_remote.csv''​.
uso/teme/tema-3-evil-hidden-page.1511432178.txt.gz · Last modified: 2017/11/23 12:16 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