Table of Contents

Laborator 12 - Recapitulare

Exerciții

Rezolvarea exercițiilor se va desfășura în condiții de test practic. Folosiți hint-urile transmise ca spoiler cât mai rar și doar atunci când nu mai știți de unde să apucați exercițiul. Chemați asistentul atunci când ați finalizat un task să vi-l puncteze. Dacă nu sunteți siguri cum trebuie făcută verificarea, întrebați asistentul sau folosiți spoiler-ul aferent de verificare.

Punctajul (cu tot cu bonusul pentru completarea feedback-ului) este mai mare de 10p. Un total de 10p asigura nota 10 pe laborator. Restul de puncte peste 10 se transforma in karma WoUSO.

Câteva indicații care sunt valabile și în cadrul testului practic:

  • Subiectele se pot rezolva în orice ordine doriți. Atenție totuși că în cadrul unor exerciții subpunctele depind între ele.
  • Subiectele se punctează doar dacă sunt validate.
  • Trebuie să vă încadrați în 100 de minute.

[0] Completare formular de feedback

Pentru a îmbunătăți cursul de USO, componentele sale și modul de desfășurare, ne sunt foarte utile opiniile voastre. Pentru aceasta, vă rugăm, să accesați și completați formularul de feedback de pe site-ul acs.curs.pub.ro. Trebuie să fiți autentificați și înrolați în cadrul cursului.

Formularul este anonim și este activ în perioada 4-20 ianuarie 2016. Rezultatele vor fi vizibile în cadrul echipei cursului doar după încheierea sesiunii. Găsiți formularul în partea dreaptă a paginii principale de USO de pe acs.curs.pub.ro într-un frame intitulat "FEEDBACK".

Vă invităm să evaluați activitatea echipei de USO și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a disciplinei. Feedback-ul vostru este foarte important pentru noi să creștem calitatea materiei în anii următori și să îmbunătățim disciplinele pe care le veți face în continuare.

Ne interesează în special:

Vă mulțumim!

[1] Structură de directoare (0.5p)

Creați următoarea structură de directoare și de fișiere, denumite exact ca mai jos (în /home/student):

În listing-ul de mai jos numele care se încheie cu / (slash) sunt nume de directoare. Numele care nu se încheie cu / (slash) sunt nume de fișiere obișnuite.

Verificarea la acest exercițiu se face arătând asistentului o singură comandă, pentru directoarele seriale și carti.

Crearea mai eficient a unei structuri de directoare

Crearea mai eficient a unei structuri de directoare

Dacă vrem, de exemplu să creem următoarea structură de directoare:

  • licenta
    • anul_1
      • sem_1
        • uso
      • sem_2
        • sd
  • masterat
    • admitere

O putem face cu o singură comandă, folosind parametrul -p al comenzii mkdir:

[mihai.barbulescu@fep-62-1 ~]$  mkdir -p licenta/anul_1/sem_1/uso licenta/anul_1/sem_2/sd masterat/admitere
 
[mihai.barbulescu@fep-62-1 ~]$  tree licenta/
licenta/
└── anul_1
    ├── sem_1
    │   └── uso
    └── sem_2
        └── sd
 
5 directories, 0 files
[mihai.barbulescu@fep-62-1 ~]$  tree masterat
masterat
└── admitere
 
1 directory, 0 files

[2] Utilizatori și permisiuni (1.5p)

[3] Utilizatori și procese (2p)

Scrieți un script care pentru un anumit nume de utilizator (exemplificați pe student) afișează următoarele informații:

Indicații

Indicații

Încercați să prelucrați conținutul fișierului /etc/passwd pentru primele 2 subpuncte. Apoi înlănțuiți rezultatul prelucrării, folosind un anumit operator Bash cu o comandă ps. Pentru primele 2 bullet-uri puteți folosi și separat comenzile id, respectiv finger.

Deși htop este tool-ul cel mai potrivit pentru ultimele 2 bullet-uri, nu îl putem folosi decât în mod interactiv. Așa că avem nevoie de ps și să filtrăm output-ul comenzii, să folosim opțiunea --sort pentru sortare după coloanei de MEM load pentru a determina PID-ul procesului care consumă cele mai multe resurse.

[4] Codebase (3p)

Mai multe indicații despre punctul 4.2

Mai multe indicații despre punctul 4.2

Urmăriți exemplul de aici. Acestuia i s-a adăugat un modul extra, deci putem porni de la editarea acestui makefile.

Mai multe indicații despre punctul 4.3

Mai multe indicații despre punctul 4.3

Trebuie întâi să dăm add și apoi commit. Urmăriți demo-ul din laboratorul 10. Verificarea se face cu git status

[5] Servicii de rețea (2p)

(1.5p) Instalați în sistem serverul web apache2, apoi porniți daemon-ul aferent serviciului web apache2. După ce serviciul e pornit, determinați pe ce port ascultă conexiuni serviciul web apache2.

(0.5p) Scanați ce porturi sunt deschise pe serverul rosedu.org.

Indicații generale

Indicații generale

Când nu știți cum se numește un pachet, dar știți aproximativ ce cuvinte cheie conține numele pachetului sau descrierea lui folosiți comanda apt-cache search <pattern>

Orice daemon/serviciu se pornește folosind fie comanda service:

service <nume_serviciu> start
service <nume_serviciu> restart
service <nume_serviciu> stop

sau folosind scriptul său aferent din /etc/init.d:

/etc/init.d/<nume_serviciu> {start|stop|restart}

Aveți nevoie de drepturi privilegiate pentru a rula comanda.

Pentru a afișa informații despre serviciile locale (inclusiv porturile pe care acestea ascultă conexiuni). Folosiți opțiunile pentru afișarea PID-ului și a numelui procesului și pentru afișarea doar serviciilor care ascultă (listen) conexiuni în rețea.

Pentru a scana porturile deschise de un server la distanță folosiți comanda nmap cu opțiunile aferente.

[6] Configurații de rețea (1p)

Exercițiul se desfășoară folosind mașinile virtuale de la laboratorul 8. Pe calculatoare ar trebui să existe deja pe partiția externă ne-freezuită de 11 GB (în EG306 de exemplu).

Asigurați conectivitatea între cele două mașini virtuale verdi și vivaldi prin intermediul interfeței eth1. Pentru verdi alocați prima adresă IP alocabilă din spațiul de adrese 192.168.50.0/23 și pentru vivaldi alocați ultima adresă IP alocabilă din spațiul de adrese 192.168.50.0/23.

Testați conectivitatea între cele două mașini virtuale.

Apoi, lăsând cele două mașini virtuale pornite, listați doar adresele MAC și numele vendor-ului ale tuturor stațiilor pornite în rețeaua din care face parte calculatorul vostru.

Indicație

Indicație

Scanarea întregii rețele se poate face tot folosind nmap. Trebuie să îi specificăm spațiul de adrese. Apoi trebuie parsat output-ul comenzii.

[7] Montare de sisteme de fișiere (2p)

Vedeți și secțiunea Montarea sistemului propriu de fișiere.

Pentru montarea unui sistem de fișiere aflat pe un fișier (în cazul de față zero100M.dat) folosiți opțiunea -o loop la comanda mount.

[8] Logging (2p)

Indicație

Indicație

în /etc/rsyslog.conf e nevoie de o intrare. Apoi serviciul/daemonul syslog trebuie repornit. Pentru a verifica faptul că mesajele se salvează în /var/log/all_logs puteți genera mesaje folosing comanda logger.

Indicație

Indicație

Configurația se face în /etc/logrotate.conf, man logrotate pentru exemple

[9] System info at startup (3p)

Realizați configurațiile necesare astfel încât de fiecare dată când deschide terminalul, utilizatorul student să fie întâmpinat de mesajul:Hello, student! Here are some statistics: data, our IP is $IP_ADDR, sysuptime, disk load. Adresa IP va fi cea a interfeței eth0.

În loc de data veți afișa data și ora sub forma: 12-01-2015,21:17:59.

În loc de sysuptime veți afișa informații despre când a avut loc ultimul boot (de cât timp este sistemul up), load average și câți useri sunt în prezent (si care) logați în sistem. Variabila $IP_ADDR va fi reținută în variabilă de mediu accesibilă oricărui proces și oricărui terminal!

În loc de diskload veți afișa informații despre primele 3 partiții care sunt cele mai încărcate, plus tipul sistemului de fișiere, ca spațiu ocupat.

[10] Autologin (1.5p)

Configurați autentificarea către mașina virtuală de la laboratorul 7 (găsibilă pe partiția nefreezuită) astfel încât să ne putem autentifica cu numele de utilizator student fără a ni se mai cere parola, dupa ce sistemul a bootat.

Indicație

Indicație

inittab, mingetty Pe Ubuntu 14.04 trebuie instalat mingetty (sudo apt-get install mingetty) și trebuie editat fișierul /etc/init/tty1.conf

[11] Configurații de rețea (cont.) (1.5p)

Indicație pentru punctul 2.

Indicație pentru punctul 2.

configurația trebuie realizată în fișierul /etc/nsswitch.conf

Exerciții bonus

[1] Mass user add script (2 karma)

Descărcați spreasheet-ul de aici în format CSV. Folosiți , ca separator. Pe baza CSV-ului realizați un script care: