Sistemul de operare Linux¶
Ponderea la examen: 5 din 30 în 2025, 3 din 18 în 2023, 4 din 30 în 2022. Tot puncte „gratuite” — memorare de căi și comenzi. Investiția minimă cu randamentul maxim.
Cuprins¶
Partea I — Teorie
- Ierarhia de directoare (FHS)
- Utilizatori și parole:
/etc/passwdvs./etc/shadow - Permisiuni și
chmod - Procese, job control și background
- Monitorizarea sistemului
- Rețelistică în Linux
- Jurnale (loguri)
- Comenzi de supraviețuire
Partea a II-a — Toate întrebările, rezolvate (9 întrebări unice)
Partea I — Teorie¶
1. Ierarhia de directoare (FHS)¶
Totul pornește dintr-o singură rădăcină, / (nu există „C:”, „D:” — discurile se montează în arbore).
| Cale | Conținut |
|---|---|
/ |
rădăcina |
/etc |
fișierele de configurare ale sistemului (text!) — passwd, shadow, fstab, hosts, resolv.conf, ssh/sshd_config |
/bin, /usr/bin |
executabile (comenzi) pentru toți utilizatorii |
/sbin, /usr/sbin |
executabile pentru administrare (root) |
/home/<user> |
directoarele personale ale utilizatorilor |
/root |
directorul personal al utilizatorului root (nu confunda cu /) |
/var |
date variabile: /var/log (jurnale), /var/spool, /var/cache |
/tmp |
fișiere temporare, șterse la repornire |
/dev |
fișiere-dispozitiv (/dev/sda, /dev/null) |
/proc |
pseudo-sistem de fișiere cu informații despre kernel și procese (/proc/cpuinfo, /proc/<pid>/) |
/lib, /usr/lib |
biblioteci partajate |
/opt |
software adițional |
/mnt, /media |
puncte de montare |
Cel mai testat
„calea absolută către directorul cu cele mai importante fișiere de configurare” = /etc.
Distractorul favorit este /bin (executabile, nu configurări) sau /var (date variabile, nu configurări).
2. Utilizatori și parole: /etc/passwd vs. /etc/shadow¶
Ambele fișiere există și amândouă sunt răspunsuri corecte — la întrebări diferite. Distincția este esențială.
/etc/passwd — informații despre conturi (lizibil de oricine)¶
root:x:0:0:root:/root:/bin/bash
alex:x:1000:1000:Alex D:/home/alex:/bin/bash
│ │ │ │ │ │ └── shell-ul implicit
│ │ │ │ │ └── directorul home
│ │ │ │ └── GECOS (nume complet)
│ │ │ └── GID (grup principal)
│ │ └── UID (0 = root)
│ └── „x” = parola este în /etc/shadow
└── numele de utilizator
/etc/shadow — parolele protejate (citibil doar de root, mod 640/000)¶
alex:$6$rounds=…$hash…:19700:0:99999:7:::
│ │ └── date despre expirare/vechime
│ └── algoritm + salt + hash ($1 MD5, $5 SHA-256, $6 SHA-512, $y yescrypt)
└── utilizator
Cum alegi la grilă
„informații despre credențialele/conturile utilizatorilor” → /etc/passwd
- „informații protejate referitoare la parolele utilizatorilor” → /etc/shadow
Cuvântul „protejate” (sau „criptate”, „hash-uri”) este declanșatorul pentru /etc/shadow.
Fișierele înrudite: /etc/group, /etc/gshadow, /etc/sudoers.
3. Permisiuni și chmod¶
Fiecare fișier are trei clase de utilizatori × trei drepturi:
- rwx r-x r--
│ │ │ └── others (ceilalți)
│ │ └──────── group (grupul)
│ └────────────── user / owner (proprietarul)
└─────────────────── tipul (- fișier, d director, l link)
| Drept | Simbol | Valoare octală | Pe fișier | Pe director |
|---|---|---|---|---|
| read | r |
4 | citire conținut | listare (ls) |
| write | w |
2 | modificare | creare/ștergere fișiere |
| execute | x |
1 | rulare | intrare (cd) |
Cifra per clasă = suma drepturilor:
| Octal | Simbolic | Sens |
|---|---|---|
| 7 | rwx |
tot |
| 6 | rw- |
citire + scriere |
| 5 | r-x |
citire + execuție |
| 4 | r-- |
doar citire |
| 0 | --- |
nimic |
Exemple canonice:
| Comandă | Rezultat | Interpretare |
|---|---|---|
chmod 700 f |
rwx------ |
proprietarul: tot; grup și alții: nimic ✓ |
chmod 644 f |
rw-r--r-- |
tipic pentru fișiere obișnuite |
chmod 755 f |
rwxr-xr-x |
tipic pentru scripturi/directoare |
chmod 600 f |
rw------- |
privat (ex. chei SSH) |
chmod 100 f |
--x------ |
doar execuție pentru proprietar — nu poate nici măcar citi fișierul |
chmod 001 f |
------x |
doar „alții” pot executa — absurd |
„Nimeni în afară de creator, iar creatorul are drepturi depline” → chmod 700.
Reține: prima cifră = proprietar, a doua = grup, a treia = alții. 7 = 4+2+1 = rwx.
chuser nu este o comandă Linux (proprietarul se schimbă cu chown, grupul cu chgrp).
4. Procese, job control și background¶
| Sintaxă / comandă | Efect |
|---|---|
comanda & |
rulează comanda în background (shell-ul rămâne liber) |
Ctrl+Z |
suspendă procesul din prim-plan |
bg |
continuă în background procesul suspendat |
fg |
readuce în prim-plan |
jobs |
listează job-urile shell-ului curent |
nohup comanda & |
rulează în background și supraviețuiește închiderii terminalului |
kill <PID> / kill -9 <PID> |
trimite SIGTERM / SIGKILL |
ps aux, ps -ef |
listează toate procesele |
pgrep, pkill |
caută / omoară după nume |
Argumentul pentru background este pur și simplu & la finalul comenzii.
ps bg, bkg, exec bg sunt inventate.
5. Monitorizarea sistemului¶
| Comandă | Ce face |
|---|---|
top |
monitor interactiv în timp real: procese active, CPU, memorie, load average |
htop |
versiune modernă, colorată, cu mouse (nu vine preinstalată) |
ps |
„fotografie” statică a proceselor (nu se actualizează) |
free -h |
memoria liberă/ocupată |
df -h |
spațiul pe discuri |
du -sh <dir> |
dimensiunea unui director |
uptime |
de cât timp rulează sistemul + load average |
vmstat, iostat |
statistici de memorie / I/O |
Distractorii tipici pentru „monitorizarea proceselor” sunt comenzi care fac cu totul altceva: mkdir (creează directoare), ping (rețea), cat /etc/passwd (afișează un fișier).
6. Rețelistică în Linux¶
| Comandă | Ce face | Status |
|---|---|---|
ifconfig |
afișează/configurează interfețele și adresele IP | deprecated, dar clasic — pachetul net-tools |
ip a / ip addr |
echivalentul modern al lui ifconfig |
recomandat azi |
ip r / route -n |
tabela de rutare | |
netstat -tulpn |
conexiuni, porturi în ascultare, procese | deprecated |
ss |
înlocuitorul modern al lui netstat |
recomandat |
dhclient |
client DHCP — cere o adresă, nu o afișează | |
ping, traceroute, dig, nslookup |
diagnoză |
ipconfig nu există pe Linux
Este comanda de Windows. Este cel mai frecvent distractor din capitol.
ss — opțiunile care contează¶
| Opțiune | Sens |
|---|---|
-t |
socket-uri TCP |
-u |
socket-uri UDP |
-l |
doar cele în stare de ascultare (listening) |
-n |
numeric — nu rezolvă nume de host/serviciu (afișează :53, nu :domain) |
-a |
toate (ascultare + conectate) |
-p |
procesul care deține socket-ul |
Combinații de reținut:
| Comandă | Ce afișează |
|---|---|
ss -uln |
doar socket-urile UDP în ascultare, cu adrese și porturi numerice |
ss -tln |
doar TCP în ascultare, numeric |
ss -tuln |
și TCP, și UDP în ascultare, numeric |
ss -ln |
tot ce ascultă, toate protocoalele |
ss -a |
absolut tot, cu rezolvare de nume |
Citește opțiunile ca pe o listă de filtre: u = UDP, l = listening, n = numeric. Se citesc literal.
7. Jurnale (loguri)¶
| Fișier / unealtă | Conținut |
|---|---|
/var/log/syslog |
jurnalul general al evenimentelor de sistem (Debian/Ubuntu) |
/var/log/messages |
echivalentul pe RHEL/CentOS/Fedora |
/var/log/auth.log (secure pe RHEL) |
autentificări, sudo, SSH |
/var/log/kern.log |
mesajele kernelului |
/var/log/dmesg · comanda dmesg |
mesaje de la boot / driver |
journalctl |
jurnalul systemd (journalctl -u ssh, journalctl -xe) |
Distractori: /etc/passwd (conturi), /etc/fstab (montări), ~/.bashrc (configurarea shell-ului utilizatorului) — niciunul nu este jurnal.
Regula simplă: jurnalele sunt în /var/log, întotdeauna.
8. Comenzi de supraviețuire¶
| Categorie | Comenzi |
|---|---|
| Navigare | pwd, cd, ls -la |
| Fișiere | cat, less, head, tail -f, cp, mv, rm, mkdir, touch, ln -s |
| Căutare | find / -name "*.conf", grep -rn "text" /etc, which, locate |
| Text | sed, awk, sort, uniq, wc -l, cut |
| Arhive | tar -czvf a.tar.gz dir/, tar -xzvf a.tar.gz, gzip, zip |
| Permisiuni | chmod, chown, chgrp, umask |
| Privilegii | su, sudo, id, whoami |
| Pachete | apt, yum/dnf, pacman |
| Servicii | systemctl start|stop|status|enable <serviciu> |
Partea a II-a — Toate întrebările, rezolvate¶
L1 · Unde se stochează informațiile despre credențialele utilizatorilor¶
În cadrul unui sistem Linux, informații despre credențialele utilizatorilor se stochează în:
- a.
/etc/passwordb./root/passwdc./etc/passwdd./users/passwd
Răspuns și explicație
Răspuns: c) /etc/passwd
Fișierul conține o linie per cont, cu 7 câmpuri separate prin : — utilizator, x (parola e în shadow), UID, GID, nume complet, home, shell.
Distractorii testează exact ortografia și calea:
- a)
/etc/passwor**d**— cu „d” în plus; numele real este prescurtat,passwd. - b)
/root/passwd—/rooteste home-ul utilizatorului root, nu locul configurărilor. - d)
/users/passwd— directorul/usersnu există în FHS (utilizatorii sunt în/home).
Atenție la varianta-soră: dacă întrebarea zice „parolele protejate”, răspunsul este /etc/shadow → vezi L2.
L2 · Unde se stochează parolele protejate¶
Într-un sistem Linux, în care dintre următoarele fișiere sunt stocate informațiile protejate referitoare la parolele utilizatorilor?
- a.
/bin/passwdb./root/passwdc./etc/shadowd./users/passwd
Răspuns și explicație
Răspuns: c) /etc/shadow
Istoric, hash-urile parolelor stăteau chiar în /etc/passwd — care trebuie să fie citibil de toată lumea, ca orice program să poată traduce UID → nume. Asta permitea atacuri de dicționar offline. Soluția a fost shadowing-ul: hash-urile s-au mutat în /etc/shadow, citibil doar de root.
| Fișier | Permisiuni tipice | Conținut |
|---|---|---|
/etc/passwd |
644 (rw-r--r--) — toți citesc |
conturi, UID, GID, home, shell |
/etc/shadow |
640 sau 000 — doar root |
hash-urile parolelor + politici de expirare |
Despre distractori:
- a)
/bin/passwdeste un lucru real, dar este programul executabil cu care îți schimbi parola (are bitul SUID), nu un fișier de date. - b), d) — căi inexistente.
Cuvântul-declanșator
„protejate” / „criptate” / „hash-uri” → shadow. Fără el → passwd.
L3 · Directorul cu fișierele de configurare¶
Într-un sistem Linux, care este calea absolută către directorul ce conține cele mai importante fișiere de configurare ale sistemului?
- a.
/binb./varc./usr/bind./etc
Răspuns și explicație
Răspuns: d) /etc
/etc („et cetera”, azi interpretat ca Editable Text Configuration) conține configurările la nivel de sistem, în format text: passwd, shadow, group, fstab, hosts, resolv.conf, crontab, ssh/sshd_config, systemd/, apt/…
De ce cad celelalte:
| Conținut real | |
|---|---|
a) /bin |
executabile esențiale (ls, cp, bash) |
b) /var |
date variabile — loguri, cozi de mail, cache. Configurări, nu. |
c) /usr/bin |
majoritatea executabilelor instalate |
Reține opoziția: /etc = configurări · /bin și /usr/bin = programe · /var = date care cresc.
L4 · Argumentul pentru execuție în background¶
Care este argumentul Linux shell care permite executarea unei comenzi în background?
- a.
&b.ps bgc.bkgd.exec bg
Răspuns și explicație
Răspuns: a) &
Pus la finalul unei comenzi, ampersand-ul îi spune shell-ului să pornească procesul și să nu aștepte terminarea lui:
Ecosistemul din jur: Ctrl+Z suspendă, bg reia în background, fg readuce în prim-plan, jobs listează, nohup cmd & supraviețuiește închiderii terminalului.
b), c), d) nu există. (bg singur este o comandă reală, dar reia un job deja suspendat — nu pornește o comandă nouă în background, și oricum nu se scrie „ps bg”.)
L5 · Comanda care blochează accesul celorlalți utilizatori¶
Care este comanda Linux care împiedică accesul oricărui utilizator la fișierul test.txt, cu excepția celui care l-a creat, care va avea drepturi depline?
- a.
chmod 100 test.txt - b.
chuser 007 test.txt - c.
chmod 700 test.txt - d.
chmod 001 test.txt
Răspuns și explicație
Răspuns: c) chmod 700 test.txt
Cerința se traduce în două condiții:
- proprietarul (creatorul) = drepturi depline =
rwx=4+2+1= 7 - grup = nimic = 0 · alții = nimic = 0
→ 700 = rwx------
Verificarea distractorilor:
| Variantă | Octal → simbolic | De ce e greșit |
|---|---|---|
a) 100 |
--x------ |
proprietarul poate doar executa, nu citi/scrie — nu are „drepturi depline” |
b) chuser 007 |
– | chuser nu este comandă Linux; proprietarul se schimbă cu chown |
d) 001 |
--------x |
exact invers: proprietarul nu are nimic, „alții” pot executa |
Metoda rapidă
Citește cele trei cifre ca „proprietar-grup-alții” și transformă fiecare în binar pe 3 biți: 7 = 111 = rwx, 0 = 000 = ---.
L6 · Comanda care afișează adresele IP¶
Care dintre următoarele comenzi Linux poate fi folosită pentru a afișa informații despre adresele IP din sistem?
- a.
netstatb.ifconfigc.ipconfigd.dhclient
Răspuns și explicație
Răspuns: b) ifconfig
ifconfig (din pachetul net-tools) afișează interfețele de rețea împreună cu adresele IPv4/IPv6, masca, MAC-ul și statisticile:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.55 netmask 255.255.255.0 broadcast 192.168.1.255
ether 55:55:55:55:55:55 txqueuelen 1000 (Ethernet)
De ce cad celelalte:
| Ce face de fapt | |
|---|---|
a) netstat |
conexiuni, socket-uri, porturi, tabela de rutare — nu este unealta pentru adresele interfețelor |
c) ipconfig |
comandă Windows, nu există pe Linux — capcana principală |
d) dhclient |
client DHCP: cere o adresă de la server, nu o afișează |
Echivalentul modern, recomandat azi, este ip a (ip addr show). Dacă apare în variante, este la fel de corect ca ifconfig.
L7 · Afișarea socket-urilor UDP în ascultare¶
Care dintre următoarele comenzi Linux afișează numai socketurile UDP aflate în starea de ascultare, utilizând adrese și porturi în format numeric?
- a.
ss -ulnb.ss -tulnc.ss -lnd.ss -a
Răspuns și explicație
Răspuns: a) ss -uln
Se decodifică literal, opțiune cu opțiune:
| Literă | Sens | Cerută de enunț? |
|---|---|---|
u |
UDP | ✓ „numai socketurile UDP” |
l |
listening | ✓ „în starea de ascultare” |
n |
numeric | ✓ „adrese și porturi în format numeric” |
t |
TCP | ✗ nu este cerut |
De ce cad celelalte:
- b)
-tulninclude și TCP → încalcă „numai UDP”. - c)
-lnafișează tot ce ascultă, pe toate protocoalele (TCP, UDP, UNIX) → nu filtrează UDP. - d)
-aarată toate socket-urile (și cele conectate), cu rezolvare de nume → încalcă și „ascultare”, și „numeric”.
Fără -n, ss afișează :domain în loc de :53 și :https în loc de :443 — de aceea opțiunea contează.
L8 · Comanda pentru monitorizarea proceselor¶
Care dintre următoarele comenzi Linux este utilizată pentru monitorizarea proceselor active și a consumului de resurse?
- a.
topb.mkdirc.pingd.cat /etc/passwd
Răspuns și explicație
Răspuns: a) top
top este monitorul interactiv, care se reîmprospătează la câteva secunde și afișează procesele ordonate după consumul de CPU, plus totalurile de memorie, load average și numărul de task-uri.
Distractorii nu au nicio legătură: mkdir creează directoare, ping testează conectivitatea în rețea, cat /etc/passwd doar afișează lista de conturi.
Echivalența cu Windows: top ≈ Task Manager (vezi W6). Aceeași întrebare, două sisteme.
Rude apropiate: htop (mai prietenos), ps aux (statică, nu se actualizează).
L9 · Fișierul de jurnal al evenimentelor generale¶
Care dintre următoarele fișiere Linux este utilizat în mod obișnuit pentru stocarea jurnalului evenimentelor generale ale sistemului?
- a.
/var/log/syslogb./etc/passwdc./home/user/.bashrcd./etc/fstab
Răspuns și explicație
Răspuns: a) /var/log/syslog
Regula simplă: toate jurnalele sunt în /var/log. Restul variantelor nici măcar nu sunt în acel director.
| Ce este de fapt | |
|---|---|
b) /etc/passwd |
lista conturilor de utilizator |
c) ~/.bashrc |
scriptul de configurare al shell-ului unui singur utilizator (alias-uri, PATH, prompt) |
d) /etc/fstab |
tabela de montare a sistemelor de fișiere la boot |
Jurnalele înrudite, de reținut:
| Fișier | Conținut |
|---|---|
/var/log/syslog |
evenimente generale (Debian/Ubuntu) |
/var/log/messages |
echivalentul pe RHEL/CentOS |
/var/log/auth.log |
autentificări, sudo, SSH |
/var/log/kern.log |
mesajele kernelului |
journalctl |
jurnalul systemd (nu un fișier text, ci o bază binară) |
Rezumatul capitolului¶
| Întrebare tipică | Răspuns |
|---|---|
| Informații despre conturi | /etc/passwd |
| Parole protejate | /etc/shadow |
| Fișiere de configurare | /etc |
| Rulare în background | & |
| Doar creatorul, drepturi depline | chmod 700 |
| Afișarea adreselor IP | ifconfig (modern: ip a) — nu ipconfig |
| Doar UDP, listening, numeric | ss -uln |
| Monitorizarea proceselor | top |
| Jurnalul general | /var/log/syslog |
vs — echivalențe utile¶
| Windows | Linux |
|---|---|
| Task Manager | top / htop |
ipconfig |
ifconfig / ip a |
net start <svc> / Start-Service |
systemctl start <svc> |
| Registry | fișiere text în /etc |
| Event Viewer | /var/log/*, journalctl |
C:\Users\<user> |
/home/<user> |
| Recycle Bin | ~/.local/share/Trash |