This shows you the differences between two versions of the page.
uso:teme:tema-2-evil-hidden-page [2017/10/31 14:34] maria.mihailescu |
uso:teme:tema-2-evil-hidden-page [2017/11/02 22:58] (current) maria.mihailescu |
||
---|---|---|---|
Line 26: | Line 26: | ||
Timp de lucru: **7 zile**\\ | Timp de lucru: **7 zile**\\ | ||
Punctaj: **0.8 puncte** din nota finală\\ | Punctaj: **0.8 puncte** din nota finală\\ | ||
- | Formular pentru trimitere temă: TODO | + | Formular pentru trimitere temă: [[ https://docs.google.com/forms/d/1comyo1UridI_FG-HqVlgJRq3q5VKHvNlzEh11iV0GvI | Formular submitere ]] |
</note> | </note> | ||
Line 66: | Line 66: | ||
Creați un script numit ''task01.sh''. Scriptul primește două argumente: | Creați un script numit ''task01.sh''. Scriptul primește două argumente: | ||
* argumentul 1 reprezintă numele unui script ce va fi creat din interiorul scriptului ''task01.sh'' | * argumentul 1 reprezintă numele unui script ce va fi creat din interiorul scriptului ''task01.sh'' | ||
- | * argumentul 2 reprezintă calea către scriptul ce va fi creat din interiorul scriptului. | + | * argumentul 2 reprezintă calea către directorul în care va fi creat noul script. |
Setați două variabile locale: ''MY_FILE'' și ''MY_PATH'' care să reprezinte primul și, respectiv, al doilea parametru al scriptului ''task01.sh''. | Setați două variabile locale: ''MY_FILE'' și ''MY_PATH'' care să reprezinte primul și, respectiv, al doilea parametru al scriptului ''task01.sh''. | ||
Line 77: | Line 77: | ||
Exemplu de folosire a scriptului ''task01.sh'': | Exemplu de folosire a scriptului ''task01.sh'': | ||
<code bash> | <code bash> | ||
- | [student@uso]$ sh script.sh . file.sh | + | [student@uso]$ sh task01.sh file.sh . |
[student@uso]$ sh file.sh student | [student@uso]$ sh file.sh student | ||
CMD1 PID PPID USER UID GID | CMD1 PID PPID USER UID GID | ||
Line 155: | Line 155: | ||
Realizați următoarele modificări asupra sistemului: | Realizați următoarele modificări asupra sistemului: | ||
* **[5p]** Utilizatorul ''ash'' are drepturi depline asupra sistemului, însă poate executa ca utilizator privilegiat fără să i se ceară parola doar comenzile ''rev'' și ''tac''. | * **[5p]** Utilizatorul ''ash'' are drepturi depline asupra sistemului, însă poate executa ca utilizator privilegiat fără să i se ceară parola doar comenzile ''rev'' și ''tac''. | ||
- | * **[5p]** Utilizatorul ''meowth'' să poată executa ca utilizator privilegiat comanda ''cat''. | + | * **[5p]** Utilizatorul ''meowth'' să poată executa ca utilizator privilegiat comanda ''cat'' fără să i se ceară parola. |
- | * **[5p]** Utilizatorul ''james'' să poată să execute ca utilizator privilegiat comanda ''ls''. | + | * **[5p]** Utilizatorul ''james'' să poată să execute ca utilizator privilegiat comanda ''ls'' fără să i se ceară parola. |
Line 229: | Line 229: | ||
Cannot mount file.iso in iso_dir | Cannot mount file.iso in iso_dir | ||
</code> | </code> | ||
- | * j) **[2p]** Se caută toate fișierele de configurare (.conf) din folderul în care a fost montat fișierul .iso. Calea către aceste fișiere, [calea absolută] se scriu în fișierul ''/home/student/tema02/task04/iso_conf_files.txt'', câte unul pe linie. | + | * j) **[2p]** Se caută toate fișierele de configurare (.conf) din folderul în care a fost montat fișierul .iso. Căile către aceste fișiere, [căile absolute] se scriu în fișierul ''/home/student/tema02/task04/iso_conf_files.txt'', câte unul pe linie. |
<note important> | <note important> | ||
Atenție! Nu se vor trece în fișierul | Atenție! Nu se vor trece în fișierul | ||
/home/student/tema02/task04/iso_conf_files.txt fișierele goale (cu dimensiune 0). | /home/student/tema02/task04/iso_conf_files.txt fișierele goale (cu dimensiune 0). | ||
</note> | </note> | ||
- | * l) **[2p]** Se caută fișierele module kernel .ko (kernel objects) cu dimensiunea mai mare decât 16 bytes din directorul în care s-a făcut mount la ISO. Rezultatele se trec în fișierul ''/home/student/tema02/task04/iso_ko_files.txt'', câte unul pe linie. | + | * k) **[2p]** Se caută fișierele module kernel .ko (kernel objects) cu dimensiunea mai mare decât 16 bytes din directorul în care s-a făcut mount la ISO. Rezultatele se trec în fișierul ''/home/student/tema02/task04/iso_ko_files.txt'', câte unul pe linie. |
La începutul fișierului se adaugă o linie care conține numărul de module kernel găsite care respectă constrângerile de mai sus urmată de o linie goală. | La începutul fișierului se adaugă o linie care conține numărul de module kernel găsite care respectă constrângerile de mai sus urmată de o linie goală. | ||
Line 245: | Line 245: | ||
./boot/kernel.ko | ./boot/kernel.ko | ||
</code> | </code> | ||
- | * k) **[2p]** La sfârșit, scriptul trebuie să iasă cu codul de eroare 42. | + | * l) **[2p]** La sfârșit, scriptul trebuie să iasă cu codul de eroare 42. |
<note warning>Toate sub-punctele sunt dependente de sub-punctele anterioare. În concluzie, nu se acordă punctaj pentru subpunctul ''1.b.I'' dacă sub-punctul ''1.a'' nu este funcțional, ș.a.m.d. Această regulă este valabilă pentru orice sub-punct al acestui exercițiu. | <note warning>Toate sub-punctele sunt dependente de sub-punctele anterioare. În concluzie, nu se acordă punctaj pentru subpunctul ''1.b.I'' dacă sub-punctul ''1.a'' nu este funcțional, ș.a.m.d. Această regulă este valabilă pentru orice sub-punct al acestui exercițiu. | ||
Line 322: | Line 322: | ||
Scriptul nu trebuie să conțină instrucțiuni de decizie, interne Bash, precum ''test'' sau ''if'' și nici instrucțiuni repetitive precum ''for'' sau ''while'', ultimele trei nefiind studiate până la acest moment. De asemenea, comenzile unui oneliner nu sunt separate de caracterul '';'' (punct și virgulă). Altfel, acestea pot fi la fel de bine scrise una sub alta, lucru care degradeaza noțiunea de ''oneliner''. | Scriptul nu trebuie să conțină instrucțiuni de decizie, interne Bash, precum ''test'' sau ''if'' și nici instrucțiuni repetitive precum ''for'' sau ''while'', ultimele trei nefiind studiate până la acest moment. De asemenea, comenzile unui oneliner nu sunt separate de caracterul '';'' (punct și virgulă). Altfel, acestea pot fi la fel de bine scrise una sub alta, lucru care degradeaza noțiunea de ''oneliner''. | ||
</note> | </note> | ||
+ | |||
+ | <note> | ||
+ | Constrângerile impuse pentru acest task: | ||
+ | - ''oneliner.sh'' să fie un script de tip oneliner | ||
+ | - ''uniques.txt'' trebuie: | ||
+ | - să conțină câte un cuvânt pe linie | ||
+ | - să conțină cuvintele unice sortate descrescător din: | ||
+ | - fișierele care conțin grupul ''.gr'' urmat de o cifră mai mare sau egal ca 6 și de grupul ''b.''. Pentru aceste fișiere se vor ignora primele 4 linii. | ||
+ | - fișierele care conțin grupul ''.gr8b.''. Pentru aceste fișiere se vor considera doar primele 3 linii ale acestora. | ||
+ | - să nu conțină cuvintele: ''password'', ''123456'', ''abcd'', ''passw0rd'', ''qwerty''. | ||
+ | - să fie generat de către script | ||
+ | - ''oneliner.sh'' să nu conțină: '';'', instrucțiuni ''for'', ''while'', ''test'' sau ''if''. | ||
+ | - ''oneliner.sh'' să funcționeze pentru orice număr de fișiere. Scripturile cu valori hardcodate **NU** vor fi punctate. | ||
+ | </note> | ||
+ | |||
==== Task 06 (10p) ==== | ==== Task 06 (10p) ==== |