Kada korisnik prvi put otvori korenski (/) direktorijum na nekoj Linux distribuciji, struktura može delovati zbunjujuće, nasumično, pa čak i zastrašujuće. Za razliku od drugih operativnih sistema gde su fajlovi organizovani po slovima diskova ili jednostavnim korisničkim particijama, Linux koristi jedinstvenu, hijerarhijsku stablastu strukturu koja je standardizovana kroz Filesystem Hierarchy Standard (FHS).

Razumevanje ove strukture nije samo stvar estetskog poznavanja sistema; ono je temelj efikasne administracije servera, rešavanja problema (troubleshooting), bezbednosti i optimizacije resursa. U ovom članku detaljno ćemo analizirati ključne direktorijume sa kojima se administratori i napredni korisnici svakodnevno susreću, proveriti njihovu ulogu prema zvaničnim standardima i objasniti njihovu praktičnu primenu.

1. /etc — Konfiguracioni centar sistema

Naziv /etc istorijski potiče od reči Et cetera, but u savremenoj terminologiji se često opisuje kao skraćenica za Editable Text Configuration.

Uloga: Sadrži isključivo statičke konfiguracione fajlove sistema i aplikacija, koji su čitljivi u tekstualnom obliku (ASCII/UTF-8).

Tehnički detalj: Ovde se nalaze fajlovi ključni za rad operativnog sistema, kao što su /etc/passwd (baza korisnika), /etc/fstab (tabela montiranja fajl sistema), /etc/network/interfaces ili konfiguracije za mrežne servise u /etc/systemd/ i /etc/nginx/.

Pravilo: Nijedan fajl u /etc ne sme biti izvršni program (binarni fajl). Direktorijum služi isključivo za podešavanja. Izmene u ovom direktorijumu direktno utiču na ponašanje celog operativnog sistema i njegovih servisa.

2. /var — Varijabilni podaci, logovi i dinamički resursi

Slovo var je skraćenica od variable (promenljivo). Dok je /usr veći deo vremena statičan, /var je prostor u kojem sistem konstantno piše, briše i modifikuje podatke tokom svog radnog veka.

Uloga: Skladištenje fajlova čija se veličina i sadržaj neprekidno menjaju dok sistem radi.

Ključne podlokacije:

/var/log/: Centralno mesto za sve sistemske i aplikativne logove (syslog, auth.log, nginx/error.log), ključno za analizu i dijagnostiku.

/var/lib/: Podaci stanja za aplikacije i sistemske pakete (baze podataka poput MySQL/PostgreSQL, git repozitorijumi, docker kontejneri).

/var/spool/: Redovi čekanja (spoolers) za zadatke u toku, kao što su štampanje (cups) ili mejl poruke (postfix).

/var/cache/: Keširani podaci za aplikacije koji mogu biti obrisani bez gubitka trajnih informacija, ali služe ubrzanju rada.

3. /home — Korisnički prostor i lični podaci

Uloga: Dom za lične fajlove i podešavanja običnih korisnika sistema.

Tehnički detalj: Svaki korisnik ima svoj poddirektorijum unutar /home (npr. /home/marko). Unutar ovog direktorijuma nalaze se lični dokumenti, preuzeti fajlovi, ali i skriveni konfiguracioni direktorijumi i fajlovi koji počinju tačkom (tzv. dotfiles, npr. .bashrc, .config/), a koji definišu personalizovano okruženje i podešavanja aplikacija za tog specifičnog korisnika.

Administrativni značaj: Tokom planiranja particionisanja diska, /home se gotovo uvek odvaja na posebnu particiju ili LVM volumen kako bi se osiguralo da reinstalacija ili pad operativnog sistema ne ugroze korisničke podatke.

4. /usr — Resursi i sistemske aplikacije

Zabluda je da /usr znači “user” u smislu običnog korisnika. Akronim zapravo označava Unix System Resources.

Uloga: Najveći direktorijum na sistemu po obimu zauzeća prostora, koji sadrži aplikacije, binarne fajlove, biblioteke i dokumentaciju namenjenu korisnicima i većini sistemskih servisa (za razliku od /bin i /sbin koji sadrže minimalne binarne fajlove potrebne za pokretanje i oporavak sistema).

Struktura unutar /usr:

/usr/bin/: Izvršni fajlovi za korisničke komande (npr. git, vim, htop).

/usr/sbin/: Administracioni binarni fajlovi koji nisu neophodni za rad u single-user režimu.

/usr/lib/: Deljene biblioteke (libraries) i zavisnosti za binarne programe.

/usr/share/: Arhitekturno-nezavisni podaci, uključujući dokumentaciju, man stranice, grafičke resurse i lokalizacije.

/usr/local/: Prostor gde administrator ručno kompajlira i instalira softver nezavisno od sistemskog paket menadžera (APT, DNF).

5. /dev — Upravljanje hardverom i drajverima (Device Files)

Uloga: Interfejs ka hardverskim uređajima kroz specijalne fajlove koji se nazivaju device nodes (čvorovi uređaja).

Kako funkcioniše: U Linuxu se “sve je fajl” filozofija primenjuje i na hardver. Hardverski uređaji (hard diskovi, terminali, USB memorije, mrežne kartice) tretiraju se kao fajlovi sa kojima operativni sistem komunicira standardnim I/O operacijama.

Primeri:

/dev/sda ili /dev/nvme0n1: Predstavljaju fizički čvrsti disk.

/dev/null: Specijalna “crna rupa” koja odbacuje sve podatke koji se u nju upišu i vraća trenutni EOF pri čitanju.

/dev/random i /dev/urandom: Generatori pseudo-slučajnih brojeva koji se koriste u kriptografiji.

6. /proc — Virtuelni prozor u rad kernela i procesa

Uloga: Pseudo-fajl sistem (fajl sistem koji ne zauzima fizički prostor na hard disku, već postoji isključivo u radnoj memoriji — RAM-u).

Tehnički detalj: /proc služi kao interfejs između jezgra operativnog sistema (kernel) i korisničkog prostora. Kroz njegovu strukturu moguće je u realnom vremenu pratiti rad sistema, menjati parametre kernela u letu ili analizirati performanse.

Primeri:

/proc/cpuinfo: Detaljne tehničke specifikacije procesora.

/proc/meminfo: Trenutna iskorišćenost i stanje RAM memorije.

/proc/sys/: Direktorijum čijom modifikacijom fajlova menjamo sysctl parametre kernela bez potrebe za ponovnim pokretanjem sistema.

7. /sys — Upravljanje uređajima i atributima kernela (sysfs)

Uloga: Moderniji pseudo-fajl sistem u poređenju sa /proc, uveden u novijim verzijama Linux kernela, služi prvenstveno za eksportovanje informacija o hardverskim uređajima, drajverima i njihovim konfiguracionim parametrima iz modela uređaja kernela.

Razlika u odnosu na /proc: Dok je /proc fokusiran na procese i opšte statistike sistema, /sys je strogo hijerarhijski organizovan i fokusiran na upravljanje hardverom, sabirnicama (PCI, USB) i energetskim profilima (power management).

8. /run — Runtime stanje i privremeni podaci sistema

Uloga: Skladištenje privremenih podataka koji opisuju stanje sistema od trenutka poslednjeg pokretanja (boot).

Tehnički detalj: Ovaj direktorijum se obično nalazi na tmpfs fajl sistemu (što znači da se nalazi direktno u RAM-u). Pošto je nestabilan, briše se pri svakom gašenju ili restartovanju računara.

Šta se ovde nalazi: PID fajlovi (identifikatori procesa da demoni znaju koji proces je aktivan), socket fajlovi za komunikaciju između procesa, i fajlovi zaključavanja (lock files). Nekada se ovi podaci nalazili u /var/run, ali je moderni FHS standardizovao /run kao primarnu lokaciju za ove namene.

9. /tmp — Privremeni radni prostor

Uloga: Mesto za skladištenje privremenih fajlova koje kreiraju korisnici i aplikacije.

Karakteristike: Podaci u /tmp obično imaju kratak životni vek. Mnoge moderne Linux distribucije automatski čiste ovaj direktorijum prilikom svakog ponovnog pokretanja sistema ili koriste sistemske servise (tmpfiles.d) da uklone fajlove koji nisu korišćeni duže vreme.

Bezbednosni aspekt: Pošto je /tmp dostupan svim korisnicima za čitanje i upis (uz odgovarajuće sticky bit dozvole koje sprečavaju brisanje tuđih fajlova), administratori moraju pažljivo pratiti njegovu upotrebu i obezbediti dovoljan kapacitet, naročito na serverima sa velikim opterećenjem obrade podataka.

Zaključak

Poznavanje FHS standarda i uloge svakog pojedinačnog direktorijuma u Linuxu predstavlja ključnu veštinu svakog system administratora. Umesto navigacije napamet i nagađanja gde se šta nalazi, razumevanje logike iza /etc, /var, /proc ili /run omogućava preciznu dijagnostiku, efikasno rešavanje problema, pravilno konfigurisanje bezbednosnih polisa i stabilan rad serverske infrastrukture.

Leave a Reply