Differences

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

Link to this comparison view

uso:teme:tema-3 [2022/12/22 02:06]
adelin_costin.popa
uso:teme:tema-3 [2024/12/03 21:42] (current)
ionut.mihalache1506 [Informații generale]
Line 1: Line 1:
 ====== Tema 3 ====== ====== Tema 3 ======
-<​hidden>​ 
 **Ce trebuie să știu?** Studiați secțiunea de [[#​cunostinte_evaluate|Cunoștințe evaluate]] și suportul agregat necesar temei. **Ce trebuie să știu?** Studiați secțiunea de [[#​cunostinte_evaluate|Cunoștințe evaluate]] și suportul agregat necesar temei.
 Nu contactaţi responsabilii de temă pe mail privat decât dacă aceştia vă cer explicit (e.g. pentru debugging local, vizualizarea unor comenzi din rezolvare) Nu contactaţi responsabilii de temă pe mail privat decât dacă aceştia vă cer explicit (e.g. pentru debugging local, vizualizarea unor comenzi din rezolvare)
Line 29: Line 28:
  
 <note important>​ <note important>​
-Deadline: **17 Ianuarie, ora 23:55**\\ +Deadline: **20 Decembrie, ora 23:59**\\
-Timp de lucru: **14 zile**\\ +
-Punctaj: **1.0 puncte** din nota finală\\+
 </​note>​ </​note>​
  
Line 95: Line 92:
   * Odată găsită parola, dezarhivați ultima barieră între voi și mesajul ascuns.   * Odată găsită parola, dezarhivați ultima barieră între voi și mesajul ascuns.
  
-==== Task 04 (15p) ====+==== Task 04 (10p) ====
   ​   ​
 <​note>​ <​note>​
Line 103: Line 100:
  
   * În directorul curent se află ''​64based.txt''​. Acest fișier a fost codificat de 20 de ori cu ''​base64''​.   * În directorul curent se află ''​64based.txt''​. Acest fișier a fost codificat de 20 de ori cu ''​base64''​.
-  * Creați un script numit ''​unbase.sh''​ care să decodifice conținutul acestuia și să scrie noul conținut în ''​output/64unbased.txt''​.+  * Creați un script numit ''​unbase.sh''​ care să decodifice conținutul acestuia și să scrie noul conținut în ''​64unbased.txt''​.
  
-==== Task 05 (25p) ====+==== Task 05 (20p) ====
  
 <​note>​ <​note>​
Line 113: Line 110:
  
   * Creați un script numit ''​my_menu.sh''​ care creează un meniu de bază pentru realizarea operațiilor pe fisiere si directoare într-un sistem cu Linux, conform diagramei:   * Creați un script numit ''​my_menu.sh''​ care creează un meniu de bază pentru realizarea operațiilor pe fisiere si directoare într-un sistem cu Linux, conform diagramei:
-  {{ :​uso:​teme:​tema3-task5-diagrama.pngs?945x370 |}}+  {{ :​uso:​teme:​tema3-task5-diagrama.png?945x370 |}}
  
   * Un exemplu de rulare a scriptului ar putea fi:   * Un exemplu de rulare a scriptului ar putea fi:
Line 121: Line 118:
   * Folosirea diacriticelor în cadrul scriptului nu este necesară și nici recomandată.   * Folosirea diacriticelor în cadrul scriptului nu este necesară și nici recomandată.
  
-==== Task 06 (20p) ====+==== Task 06 (30p) ====
  
 <​note>​ <​note>​
   Pentru acest task se va lucra exclusiv în directorul /​home/​student/​tema3-task6   Pentru acest task se va lucra exclusiv în directorul /​home/​student/​tema3-task6
   Înainte de a vă apuca, intrați in directorul acesta.   Înainte de a vă apuca, intrați in directorul acesta.
-</​note>​ 
  
-  ​* În directorul curent se află un fișier [[https://​en.wikipedia.org/​wiki/​JSON|JSON]],​ numit ''​inventory.json''​+  ​Pentru cerințele a și b veți reține output-ul în log_fixed.txt
-  ​* Acest fișier conține doi jucători de Minecraft șinventarele acestora.+  ​Celelalte linii le veți afișa exact așa cum apar în fișierul log.txt.
  
-  ​* [10p] 1. Creați un script numit ''​find_common.sh''​ care găsește toate itemele comune (bazat strict pe nume) ale celor doi jucători și le pune în ''​outputs/common_items.txt''​+  ​Toate scrierile către fișiere vor fi făcute direct din scripturi, ci nu la momentul execuției. 
-  ​* [10p] 2. Creați un script numit ''​find_best.sh''​ care găsește toate itemele (de la ambii jucători) ce au câmp de durabilitate,​ le ordonează descrescător după aceasta și le pune în ''​outputs/​best_items.txt''​.+  Exemplu: `./fix_requests.sh > log_fixed.txt` nu va fi acceptat ca soluție. 
 +</​note>​ 
 + 
 +<note important>​ 
 +  ​De fiecare dată când veți rula `sudo uso start 3` se va genera ​un nou log.txt. 
 +</​note>​
  
-  * Pentru referință se vor folosi fișierele ​din directorul ​''​ref''​. +  * [5p] a. Creați un script numit ''​fix_requests.sh''​ care afișează în ''​log_fixed.txt''​ conținutul ​din ''​log.txt''​, dar modificând liniie care au ca tip de cerere HEAD, astfel încât să fie afișate invers
-  * Pentru prelucrarea datelor din ''​.json'' ​se recomandă folosirea utilitarului [[https://stedolan.github.io/jq/manual/|jq]]. +  * **Exemplu: <color green>​)46x ;46niW ;0.01 TN swodniW( 17.2964.0.79/​emorhC :tnegA-resU 1.1/PTTH tuoba/ DAEH</​color>​** 
-</hidden>+  * [5p] b. Modificați scriptul ​''​fix_requests.sh'' ​astfel încat toate liniile care au ca tip de cerere OPTIONS să fie afișate cu majuscule. 
 +  * **Exemplu<color green>​OPTIONS ​/SOME_OTHER_PATH HTTP/1.1 USER-AGENT: CHROME/97.0.4692.71 (WINDOWS NT 6.1; WOW64)</color>​** 
 +  * [10p] c. Creați un script numit ''​get_users.sh''​. În cadrul acestuia, cu ajutorul cererilor de tip POST (din fișierul ''​log.txt''​) făcute către ''​/login'',​ rețineți în fișierul ''​users_db.txt''​ toți utilizatorii și parola lor respectivă (ca hash de tipul sha256), sortați alfabetic după utilizatori. 
 +  * **Exemplu: <color green>​adelin:​1bc9414dc185b89669dba035340c4684a6733bbf1cdac568dadcfd2eef731054<​/color>​** 
 +  * [10pd. Creați un script numit ''​get_browsers.sh''​ în care identificați ce browsere folosesc utilizatorii de iPhone (din fișierul ''​log.txt''​) și le rețineți în fișierul ''​iphone_users_browsers.txt''​ alături de numărul de apariții, sortate de la cel mai folosit browser pana la cel mai puțin folosit
 +  * **Exemplu: <color green>​Safari - 120</color>**
uso/teme/tema-3.1671667591.txt.gz · Last modified: 2022/12/22 02:06 by adelin_costin.popa
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