Sunteți pe pagina 1din 12

Utilizarea Sistemelor de Operare: Tema 1

Termen de predare: Miercuri, 23 Noiembrie 2011, ora 23:00


Utilizarea Sistemelor de Operare - Tema 1

Descriere

Tema constă ı̂n realizarea unui set de task-uri asupra unui sistem de operare Linux, gata instalat ı̂ntr-o
mas, ină virtuală.

O parte din task-urile din această temă necesită prezent, a unei conexiuni la Internet.

Pentru predarea temei sunt necesare:

• o arhivă care cont, ine mas, ina virtuală realizată ı̂n urma rezolvării taskurilor.

• suma MD5 a acestei arhive.

Pentru realizarea sumei de control MD5 a arhivei, recomandăm folosirea programului md5sum:

• pe Linux, acesta se poate instala direct cu ajutorul package managerului, dacă el nu există deja instalat
ı̂n sistem

• pe Windows, recomandăm descărcarea de pe acest site a utilitarului:

http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe

sau de pe:

https://elf.cs.pub.ro/uso/tema1/md5sum.exe

Atent, ie! Există numeroase programe pentru calculul MD5-ului pe Windows. Din nefericire, unele imple-
mentează gres, it algoritmul de calcul al sumei. MD5-ul arhivei va fi comparat cu cel generat de md5sum-ul
de pe linux. Programul recomandat de noi este verificat să funct, ioneze corespunzător. Dacă dorit, i, totus, i,
să folosit, i un alt utilitar, asigurat, i-vă că obt, inet, i acelas, i MD5, altfel riscat, i să nu primit, i punctaj pe temă!

Pentru a genera, pe Windows, md5sum-ul, copiat, i fis, ierul md5sum.exe ı̂n acelas, i director cu arhiva. Apoi
deschidet, i un Command Prompt. Facet, i acest lucru accesând Start - Run, unde introducet, i cmd. Apoi,
folosind comanda cd, navigat, i ı̂n directorul cu arhiva s, i cu programul md5sum.exe. Calculul sumei MD5 se
face executând ı̂n Command Prompt comanda md5sum Serie Grupa Nume Prenume.zip.

MD5-ul va fi ı̂ncărcat pe site-ul https://elf.cs.pub.ro/vmchecker.

Arhiva va fi ı̂n format .zip (NU se admit alte formate, nici RAR, nici 7zip).

Denumirea arhivei va fi de forma: serie grupa Nume Prenume.zip (ex.: CA 312 Pandolovici Ion.zip).

Ea va avea un singur director de forma serie grupa Nume Prenume care va cont, ine doar fis, ierele:

• USO Tema1.vmdk

• USO Tema1-s001.vmdk

• USO Tema1-s002.vmdk

• USO Tema1-s003.vmdk

• USO Tema1.vmx

Pagina 1/ 11
Utilizarea Sistemelor de Operare - Tema 1

• USO Tema1.vmxf

• USO Tema1.nvram

Observat, ii:

• Mas, ina virtuală SE VA OPRI ı̂nainte de realizarea arhivei cu directorul acesteia. Pentru a opri
mas, ina ı̂n VMware Player aleget, i din meniul ”Virtual Machine” opt, iunea ”Power - Power off”. NU
aleget, i ”File - Suspend and quit”.

• Dacă at, i lucrat ı̂n Windows, se recomandă să avet, i dezactivată opt, iunea ”Hide extensions for known
file types” din meniul ”Tools - Folder Options” pentru a putea identifica corect fis, ierele cerute pentru
arhivă.

• Dacă pentru rezolvarea temei at, i folosit alt utilitar decât VMware Player (ex.: VMware Worksta-
tion/Server), asigurat, i-vă că NU at, i făcut snapshot-uri.

Termen de predare:

• Timpul de lucru efectiv este de 29 de zile

• Uploadarea md5-ului: 23 noiembrie, ora 23:00

Tema va fi considerată rezolvată la data trimiterii MD5-ului pe site. Se acceptă ı̂ntârzieri după următoarea
regulă:

• Upload MD5 până pe 23 noiembrie la ora 23:00 - nici o ı̂ntârziere, punctaj maxim

• Upload MD5 până pe 24 noiembrie la ora 23:00 - ı̂ntârziere de o zi, depunctare 10 / 50 puncte

• Upload MD5 până pe 25 noiembrie la ora 23:00 - ı̂ntarziere de două zile, depunctare 20 / 50 puncte

• După 25 noiembrie ora 23:00 - nu se mai pot trimite teme

Atent, ie!

Upload-ul MD5-ului constituie doar prima parte a predării temei! S, i arhiva cu mas, ina virtuală va fi predată.
Detalii despre predarea ei vor apărea pe site-ul de curs.

Chiar s, i după ce at, i predat ambele părt, i (MD5 s, i arhivă), NU s, terget, i arhiva cu mas, ina virtuală până nu vă
aflat, i nota! Dacă vor exista probleme ı̂n corectarea temei, fără arhivă NU se pot face contestat, ii sau rezolva
eventualele probleme apărute.

Particularizare:

Definim următoarele notat, ii valabile ı̂n cadrul enunt, ului temei:

• $nume = numele vostru scris cu litere mici (exemplu: popescu)

• $prenume = primul vostru prenume scris cu litere mici (exemplu: valentin)

• $n nume = numărul de litere din $nume (exemplu pentru ”popescu”: 7)

Pagina 2/ 11
Utilizarea Sistemelor de Operare - Tema 1

• $n prenume = numărul de litere din $prenume (exemplu pentru ”valentin”: 8)

• $grupa = grupa (exemplu: ”314”)

• $seria = seria, scrisă cu litere mici (exemplu: ”ca”)

Pagina 3/ 11
Utilizarea Sistemelor de Operare - Tema 1

Testare

Testarea temei se va face DOAR autentificat ca utilizator ”root”, folosind programul instalat check. Pro-
gramul check implementează testele pentru toate task-urile din această temă. Acesta poate fi executat ı̂n
orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Programul check se poate apela s, i
cu un parametru, s, i anume numarul task-ului care se dores, te a fi verificat (Ex: ”check 5” execută testarea
task-ului 5).

Versiunea programului check este afis, ată pe prima linie a output-ului.

Versiunea curentă este: USO/1.2. Codename: Go Bananas.

În cazul ı̂n care testele vor fi actualizate, modificările ajung ı̂n mod automat pe mas, inile virtuale. Comanda
update-check (executată ı̂n mod automat) va descărca ultima versiune a programului check folosit pentru
testarea temei. Pentru a actualiza manual checker-ul, putet, i apela update-check ca utilizator root.

În eventualitatea ı̂n care există probleme cu programul check, actualizările acestuia vor fi realizate ı̂n mod
automat. Pentru a fort, a o actualizare, se poate folosi comanda: update-check –force .

Testarea finală a mas, inii virtuale se va face dupa un restart al acesteia, NU pe mas, ina virtuală care a ies, it
din suspend.

Testarea finală a temei se realizează prin intermediul utilitarului automat de verificare a temelor on-line
Vmchecker. Pentru ca testarea să reus, ească este important să fie ı̂ndeplinite următoarele condit, ii:

• Setările mas, inii virtuale NU ar trebui modificate (nici măcar o actualizare a VMWare Tools). Dacă
totus, i considerat, i că este necesară o modificare ı̂ntrebat, i ı̂ntâi pe forum-ul temei dacă este acceptată.

• Mas, ina virtuală să pornească iar sistemul de operare să se ı̂ncarce complet fără interact, iune din
exterior

• Parola de root să rămână cea implicită (”GNUL1nux”)

• Serviciul VMware Tools să pornească la bootare

ATENT , IE: Mas, ina virtuală vine implicit cu aceste condit


, ii ı̂ndeplinite s
, i nici un task nu va afecta vreuna

din ele. Vă rugăm să NU alterat, i vreuna din aceste componente deoarece riscat, i să primit, i 0 puncte pe
temă.

Notare

Nota pe ı̂ntreaga temă este dată de punctajul acumulat pe toate task-urile, punctaj afis, at de către programul
check la execut, ia fără nici un parametru.

Se pot lua maxim 50 de puncte pe ı̂ntreaga temă. Acest punctaj este echivalent cu 0.5 puncte din nota
finală.

Nu este obligatorie rezolvarea tuturor task-urilor. Task-urile pot fi rezolvate ı̂n orice ordine, mai put, in ı̂n
situat, ia ı̂n care un task depinde de rezolvarea unui alt task.

Pagina 4/ 11
Utilizarea Sistemelor de Operare - Tema 1

Descrierea mas, inii virtuale

Vi se pune la dispozit, ie o mas, ină virtuală VMware cu următoarele specificat, ii:

• 256 MB RAM
• 4GB HDD
• Placă de ret, ea conectată prin NAT (eth0)
• Placă de ret, ea conectată ı̂n regim Host-Only (eth1)

Această mas, ină virtuală are instalată distribut, ia de Linux Debian Lenny.

Sistemul instalat are următoarele specificat, ii:

• HDD partit, ionat ı̂n 4 partit, ii primare:


– Partit, ie:sda1, Mount point: /boot, Filesystem: ext3, Mărime: 100MB
– Partit, ie:sda2, Mount point: / , Filesystem: ext3, Mărime: 3GB (3000MB)
– Partit, ie:sda3, Mount point: /home, Filesystem: ext3, Mărime: 700MB (aprox.)
– Partit, ie:sda4, Filesystem: swap, Mărime: 500MB (aprox.)
• Hostname: ”tema1”, Domain: ”usodomain”
• Parola de root este ”GNUL1nux” (cu cifra ”unu” ı̂n locul literei ”I”)
• Userul init, ial creat este ”student” cu parola ”USOru1z” (cu cifra ”unu” ı̂n locul literei ”L”)
• Sistemul instalat nu cont, ine interfat, ă grafică.

Primul pas din rezolvarea temei constă ı̂n descărcarea arhivei cu mas, ina virtuală. Aceasta se găses, te la
adresa: http://elf.cs.pub.ro/uso/tema1/USO_Tema1_VM.zip. Arhiva este, de asemenea, disponibilă prin
torrent-ul de la adresa: http://elf.cs.pub.ro/uso/tema1/USO_Tema1_VM.torrent.

Pentru validarea arhivei descărcate vă punem la dispozit, ie suma MD5 a arhivei ı̂n fis, ierul USO Tema1 -
VM.md5 de la adresa: https://elf.cs.pub.ro/uso/tema1/USO_Tema1_VM.md5.

În continuare, dezarhivat, i USO Tema1 VM.zip. Deschidet, i VMware Player s, i selectat, i ”Open Virtual Ma-
chine”. Aleget, i fis, ierul USO Tema1.vmx.

Dacă vă apare mesajul ”This virtual machine may have been moved or copied”, răspundet, i cu opt, iunea ”I
copied it”.

În eventualitatea ı̂n care există probleme cu programul check, actualizările acestuia vor fi realizate ı̂n mod
automat. Pentru a fort, a o actualizare, se poate folosi comanda: update-check –force

Lucrul ı̂n mas, ina virtuală poate fi dificil datorită limitării dimensiunilor terminalului (80 x 25 caractere).
Recomandăm conectarea prin SSH la mas, ina virtuală s, i lucrul ı̂n acest mod. Pe Windows se
poate folosi Putty pentru conectarea prin SSH.

Pentru conectarea prin SSH vet, i avea nevoie de adresa IP a mas, inii virtuale. Aceasta o putet, i afla folosind
comanda: sudo ifconfig eth0. Adresa IP este cea de la câmpul ”inet addr:”.

Toate task-urile temei se execută ca utilizator student, mai put, in ı̂n cazurile când este specificat
altfel.

Pagina 5/ 11
Utilizarea Sistemelor de Operare - Tema 1

Task 1 (2p)

Creare fis, ier identificare

Ca utilizator student, creează fis, ierul info ı̂n /home/student. Acest fis, ier trebuie să cont, ină:

• prima linie: numele tău (doar primul nume) - ex: ”Popescu” - se va regăsi automat cu litere mici
ı̂n $nume ı̂n cadrul check-ului

• a doua linie: prenumele tău (doar primul prenume) - ex: ”Valentin” - se va regăsi automat cu
litere mici ı̂n $prenume ı̂n cadrul check-ului

• a 3-a linie: grupa s, i seria - ex: ”314CA” - se va regăsi automat ı̂n $grupa==”314” s, i ı̂n $seria==”ca”
(transformată automat ı̂n litere mici) ı̂n cadrul check-ului

Programul de test va afis, a valorile pentru toate variabilele de mai sus pentru a s, ti cum anume trebuie folosite
ı̂n viitoarele task-uri.

Variabilele $nume, $prenume, $grupa vor cont, ine automat numai litere mici.

Task 2 (4p)

Configurări standard pentru utilizatori noi

Realizează setările necesare astfel ı̂ncât fiecare utilizator nou creat ı̂n sistem prin comanda adduser să aibă:

• un fis, ier denumit admin.txt ı̂n directorul personal home, ı̂n care să se găsească textul:
“Administrator: $prenume $nume” (fără ghilimele)

• definit un alias admin, care să afis, eze la consolă acelas, i mesaj ca mai sus.

Pentru mai multe detalii, citit, i acest articol.

Task 3 (7p)

Structură de directoare

Crează ı̂n directorul /home/student/music o structură de directoare astfel ı̂ncât:

• /home/student/music să cont, ină directoarele:

– mp3
– wav

• directorul mp3 să cont, ină directoarele:

– Goldies

Pagina 6/ 11
Utilizarea Sistemelor de Operare - Tema 1

– Good music
– Oldies

• directorul wav să cont, ină directoarele:

– Nature
– Age of Empires

• directoarele Good music s, i Oldies să cont, ină fiecare:

– fis, ierul playlist.txt


– fis, ierul noname.mp3

• directorul Nature să cont, ină fis, ierele:

– bird.wav
– snake.wav

• ı̂n directorul wav/Age of Empires crează un link simbolic cu numele soundtrack către fis, ierul
mp3/Good music/noname.mp3. Foloses, te o cale relativă la directorul wav/Age of Empires.
Pentru a obt, ine punctajul maxim foloses, te mereu căile cele mai scurte. Căi de forma ././././../X/../X/..
NU vor primi punctaj.

• ı̂n fis, ierul mp3/Good music/playlist.txt scrie următorul text:


1. Unknown Artist - Song 0x1
2. Artist 0x1 - Song 0x2

Task 4 (6p)

Permisiuni fis, iere

Adăugat, i ı̂n sistem utilizatorii larry, mark s, i sergey.

În directorul /home/student/perms se găses, te o ierarhie de fis, iere s, i directoare. Pentru fiecare fis, ier din
această ierarhie (ı̂n mod recursiv), să se seteze permisiunile necesare astfel ı̂ncât:

• utilizatorul mark să poată citi s, i scrie ı̂n aceste fis, iere;

• utilizatorii larry s, i sergey să poată doar citi fis, ierele;

• tot, i ceilalt, i utilizatori să nu aibă niciun drept asupra fis, ierelor.

În plus, tot, i utilizatorii trebuie să poată vedea cont, inutul directoarelor din ierarhie, sau directoarele ierarhiei.
Niciun utilizator nu va putea ı̂nsă (fără drepturi administrative) să mai adauge fis, iere noi sau să s, teargă /
redenumească fis, iere existente ı̂n aceste directoare.

Pagina 7/ 11
Utilizarea Sistemelor de Operare - Tema 1

Task 5 (9p)

Utilizatori s, i grupuri

TOT
, I utilizatorii creat
, i trebuie să aibă parola ”USOru1z” (fără ghilimele, cu cifra unu ı̂n locul literei ’L’).

• Adăugat, i următoarele grupuri de utilizatori ı̂n sistem:

– fun
– classics
– highresource
– strategy
– adventure
– simulation
– fps

• Adăugat, i următorii utilizatori ı̂n sistem, tot, i având ca grup primar fun:

– ageofempires
– brokensword
– nfs
– killzone
– halo

• Adăugat, i ı̂n grupul classics utilizatorii:

– ageofempires
– nfs

• Adăugat, i ı̂n grupul highresource utilizatorii:

– killzone
– halo
– brokensword

• Adăugat, i utilizatorul ageofempires ı̂n grupul strategy.

• Adăugat, i utilizatorul brokensword ı̂n grupul adventure.

• Adăugat, i utilizatorul nfs ı̂n grupul simulation.

• Adăugat, i ı̂n grupul fps utilizatorii:

– killzone
– halo

Pagina 8/ 11
Utilizarea Sistemelor de Operare - Tema 1

Task 6 (5p)

Identificarea fis, ierelor cu anumite proprietăt, i. Arhivare

Vrei să trimit, i prietenilor o arhivă cu pozele din vacant, ă. În /home/student/poze există o ierarhie de
directoare. În această ierarhie se află toate pozele tale, de când t, i-ai cumpărat primul aparat foto. Arhiva
pe care vrei să o creezi trebuie să cont, ină toate fis, ierele care ı̂ndeplinesc toate condit, iile de mai jos:

• au extensia jpg sau bmp;

• au dimensiunea, exprimată ı̂n octet, i, ı̂ntre $n_prenume*1024 s, i (42+$n_nume)*1024, inclusiv;

• au fost modificate ultima dată ı̂ntre 11 s, i 19 iunie 2011 inclusiv sau ı̂ntre 24 iulie s, i 2 august 2011
inclusiv (acestea au fost datele când ai fost plecat ı̂n vacant, ă).

În arhivă, fis, ierele trebuie să respecte ierarhia din sistemul de fis, iere. De exemplu, fis, ierul de la calea
/home/student/poze/dir1/dir2/fis3.jpg va trebui să se găsească ı̂n arhivă la calea dir1/dir2/dir3.jpg.

Arhiva trebuie să se numească Poze_$prenume.tar.bz2 s, i să se gasească ı̂n directorul /home/student. Se
va folosi compresie de tip bzip2.

Atent, ie: Pentru a primi punctaj pe acest exercit, iu, nu modificat, i ı̂n niciun fel ierarhia din /home/student/poze
(nu adăugat, i sau s, terget, i fis, iere/directoare, nu modificat, i permisiunile, timpii de acces sau cont, inutul
fis, ierelor). Dacă totus, i at, i făcut acest lucru, va trebui să refacet, i ierarhia ı̂n starea init, ială, rulând comanda
sudo gen-06.

Putet, i folosi comanda find s, i redirectări pentru identificarea fis, ierelor care ı̂ndeplinesc condit, iile cerute.

Task 7 (5p)

Arhive protejate prin parolă

Instalează pachetul fcrackzip.

Arhivează toate fis, ierele cu extensia conf din directorul /etc ı̂ntr-o arhivă de tip zip protejată prin parolă.
Arhiva, denumită secure $prenume.zip, trebuie să se gasească ı̂n /home/student, iar parola ei trebuie să
fie $nume.$grupa. Toate fis, ierele trebuie să se gasească direct ı̂n rădăcina arhivei.

Rulează comanda sudo gen-07. Această comandă va crea ı̂n directorul /home/student o arhivă protejată
printr-o parolă, ce cont, ine documente secrete. Tot ce s, tii despre parolă este că:

• are ı̂ntre 4 s, i 5 caractere;

• este formată numai din litere mici s, i cifre.

Folosind eventual fcrackzip, dezarhivează arhiva ı̂n directorul /home/student/topsecret.

Pagina 9/ 11
Utilizarea Sistemelor de Operare - Tema 1

Task 8 (6p)

Task-uri administrative

Realizează setările necesare astfel ı̂ncât tot, i utilizatorii grupului geekspert, cu except, ia lui penguin, să
poată folosi sudo fără parolă pentru a putea schimba owner-ul sau grupul oricărui fis, ier din sistem, folosind
chown sau chgrp.

Atent, ie: orice utilizator adăugat ulterior ı̂n grupul geekspert trebuie să respecte aceleas, i specificat, ii, deci
nu realizat, i setările explicit pentru utilizatorii deja existent, i ı̂n grup. În plus, nu s, terget, i grupul geekspert
sau utilizatorul penguin. Dacă facet, i acest lucru, va trebui să refacet, i starea init, ială manual.

Task 9 (6p)

Editare fis, iere sursă

Vrei să refactorizezi sursele din directorul /home/student/codebase. Pentru aceasta, pentru fiecare fis, ier
din acest director:

• adaugă pe prima linie textul ”// Copyright USO 2005-2011” (fără ghilimele), după care să urmeze
o linie albă (care nu cont, ine niciun caracter), s, i de abia după aceea codul sursă din fis, ierul init, ial;

• s, terge toate spat, iile albe sau tab-urile inutile de la sfârs, it de linie.

Atent, ie: Nu facet, i alte modificări asupra fis, ierelor, ı̂n afară de cele ment, ionate mai sus. În caz contrar,
nu vet, i primi punctajul pe acest exercit, iu. Dacă dorit, i să readucet, i fis, ierele la starea init, ială, rulat, i sudo
gen-09.

Putet, i citi despre ce ı̂nseamnă refactorizarea codului aici. Deoarece fis, ierele sursă sunt mari, este recoman-
dat ca pentru realizarea task-ului să folosit, i facilitat, ile puse la dispozit, ie de editorul folosit (de exemplu
Search&Replace, highlighting).

Pagina 10/ 11
Lista schimbărilor

1 ”Troubleshoot” opt, iunea ”Power off and quit” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

11