This is an old revision of the document!
Thread nou? Nu. Pentru o ușoară parcurgere a mesajelor, folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse.
Căutare. Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
Printscreen/poză? Nu. În cazul în care doriți să publicați un printscreen pe forum, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către printscreen. Pozele inserate în răspunsuri, vor fi șterse.
Actualizări. Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
Regulament. Înainte și în timpul realizării temei, vă rugăm să parcurgeți indicațiile legate de realizarea temelor, încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe cs.curs.pub.ro pentru întrebări și neclarități legate de teme.
Întrebări frecvente. În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
Ajutor reciproc. Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le răspundeți.
Actualizări utilitar uso
: versiunea v16 - “Gold Blackbird”
Actualizări checker: versiunea 16
uso
uso
, consultați instrucțiunile de utilizare.Descărcare mașină virtuală și informații despre aceasta
Testarea temei se va face doar pe mașina virtulă (aici) autentificat ca utilizator student
, folosind utilitarul uso
. Acesta poate fi executat în orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Nu lucrați autentificat ca utilizator root
în sistem, la nicio temă. Din acest motiv există posibilitatea să nu vă treacă testele. Pe de altă parte, nu este o metoda de siguranță să lucrați autentificat ca utilizator root
din motive de securitate și/sau permisiuni.
Utilitarul uso
implementează testele doar pentru task-urile temei curente. La fiecare temă nouă, pentru a folosi utilitarul uso
, primul pas este să porniți tema folosind comanda sudo uso start
. În caz contrar, nu veți avea actualizat checker-ul pentru tema curentă.
Verificați versiunea utilitarului uso
cât și a checker-ului, afișată la rularea comenzii sudo uso start
sau sudo uso check
, pe prima linie a output-ului. Asigurați-vă că aveți ultima versiune înainte de a continua lucrul pentru temă. Versiunea actuală este specificată în secțiunea Informații generale prezentă în enunțul temei. Pentru situațiile în care nu dispuneți de ultima versiune a utilitarului uso
sau checker-ului, rulați sudo uso update
.
Finalizarea temei se realizează prin rularea comenzii sudo uso submit
și încărcarea codului returnat de această comandă (32 de caractere alfanumerice), în formularul din secțiunea Informații generale. Pentru a evita transcrierea eronată a codului returnat de checker, recomandăm copierea acestuia din interfața mașinii host conectată prin SSH către mașina guest după cum urmează:
Faceți următoarele modificări în sistem astfel încât să respectați cerințele de mai jos:
Grupul ceo
nu trebuie să existe în sistem la sfârșitul acestui task.
student
la grupul suplimentar qa
.ceo
aparținând grupurilor board
(grup primar) și finance
astfel încât directorul home să fie /home/company/
./home/company/
în board
(directorul trebuie să existe în prealabil)./home/company/etaj2/
astfel încât utilizatorul deținător al acestuia va fi vp
iar grupul deținător va fi board
./home/company/
astfel încât toți utilizatorii sistemului să poată citi, scrie și executa./home/company/etaj3
astfel încât:employee
să nu aibă niciun drept asupra fișieruluiceo
și vp
pot lansa în execuție fișierul
/home/company/
nu trebuie să existe alte fișiere sau directoare în afară de cele menționate în enunț.
Faceți următoarele modificări în sistem astfel încât:
manager
să existe în sistem iar parola acestui utilizator trebuie să fie M@n4g3r
.manager
să poată executa cu drept de sudo
comenzile: ls
și cat
, fără să îi fie cerută parola de la tastatură.manager
nu va avea drept de sudo
.Lucrați într-o companie de succes și aveți o funcție de analist financiar. Unul din task-urile voastre este să găsiți angajatul cu cel mai mic salariu care are cele mai bune rezultate profesionale, pe baza unor date deja existente. În același timp trebuie să vă asigurați că datele existente sunt valide și provin din surse sigure. În cazul în care datele sau sursele nu sunt corecte va trebui să comunicați acest lucru superiorului vostru prin-un mesaj. La final, șeful vostru vă va comunica rezultatul muncii printr-o promovare la funcția de analist programator dacă ați rezolvat cu succes acest task. Multă baftă!
Din fericire, sunteți un bun utilizator al sistemului de operare Linux datorită studiului intens depus în facultate și doriți să vă ușurați această muncă. Pentru aceasta trebuie să creați scriptul /home/student/task4.sh
care:
4
angajati.txt
5
/home/student/task4/
. În caz contrar scriptul trebuie să iasă cu valoare de retur 6
7
8
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.
ID_ANGAJAT\NUME\PRENUME\SALARIU_ANGAJAT\SCOR_PERFORMANȚĂ
Un exemplu de fișier găsiți la adresa:
https://elf.cs.pub.ro/~uso/res/teme/tema2_task4_sample.txt
/home/student/task4/
angajati.txt
nu se găsește în directorul primit ca al doilea argument
https://elf.cs.pub.ro/~uso/res/teme/tema2_task5_partition.tgz
Dezarhivați arhiva partition.tar.gz
. În urma dezarhivării va rezulta un fișier cu numele partition
având dimensiunea de 10MB. Vrem să folosim fișierul partition
ca suport pentru un sistem de fișiere pe care îl vom monta ulterior ca dispozitiv ce simuleaza o partiție a sistemului de operare. În cazul nostru, partiția rezultată va avea alocat un spațiu de 10MB.
partition
trebuie să se găsească în directorul /home/student/tema2/
ext3
pe fișierul partition
partition
în directorul /home/student/tema2/mnt/
(acest director trebuie să existe mai întâi), apoi creați pe această partiție un fișier gol ce va avea numele homework.txt
homework.txt
, partiția trebuie să fie montată cu drepturi de scriere.partition
în directorul /home/student/tema2/mnt/
, dar de data aceasta fără drepturi de scriere. Partiția trebuie sa poată fi doar citită
Scrieți one-liner-ul la calea /home/student/tema2/oneliner.sh
, care realizează următoarele acțiuni:
oneliner.txt
există în directorul părinte al directorului în care se află scriptul oneliner.sh
(rețineți faptul că scriptul oneliner.sh
poate fi rulat și din alt director din sistem, folosind o cale atât relativă cât și absolută pentru rularea sa)oneliner.txt
există la calea specificată, atunci scriptul (one-liner) va adăuga la sfârșitul acestuia numărul total al descriptorilor de fișier cu indicele 2
, al tuturor proceselor care ruleaza în sistem la momentul execuțieioneliner.txt
nu există la calea specificată, scriptul (one-liner) va trebui să-l creeze și să adauge în fișier doar 2 linii:errors:
file not found
man echo
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
.
Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de Informații generale. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou (detalii aici), până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte).