3. Općenito o NTFS-u
New Technology File System
Isključivo za Windows operacijske sustave temeljene na NT tehnologiji
Prva verzija izlazi 1993. godine (Windows NT 3.1)
Posljednja verzija 3.1 izlazi 2001. godine
4. Verzije NTFS-a
v1.0 (1993.) – NT 3.1
v1.1 (1995.) – NT 3.51
Popisi za kontrolu pristupa (ACL)
v1.2 (1996.) – NT 4.0
Podrška za sigurnosne deskriptore
v3.0 (2000.) – 2000
Kvote diska, EFS, prorijeđene datoteke, točke ponovne obrade, USN
v3.1 (2001.) – XP, Vista, 7, 8, 10
Redundantni MFT zapisi, transakcije, promjena veličine particija
7. Boot sektor
Prvi sektor NTFS particije koji se popunjava
Dva bloka: BIOS Parameter Block i Boot Code Volume
BPB sadrži temeljne informacije o samome volumenu
Boot Code Volume sadrži upute za učitavanje OS-a
8. MFT
Master File Table
Može se promatrati kao relacijska baza podataka
Maksimalna veličina podataka = veličina kalstera
Može pohranjivati male podatke
Prvih 16 MFT zapisa – sistemske datoteke
Atributi: stalni i nestalni (dodatni)
9. Atributi MFT-a
Naziv atributa Opis atributa
Standard Information
Sadrži informacije poput vremenske oznake i brojač
poveznica.
Attribute List Sadrži lokacije svih dodatnih atributa (koji nisu stali u MFT).
File Name
Dolazi u kratkom (8 znakova za ime, 3 za ekstenziju) i dugom
obliku (do 255 Unicode znakova).
Security Descriptor Opisuje tko ima vlasništvo, a tko ima pristup podacima.
Data Sadrži podatke o datoteci. Može biti više Data atributa.
Object ID
Jedinstveni indikator na razini volumena kojeg nema svaka
datoteka.
10. Atributi MFT-a
Naziv atributa Opis atributa
Logged Utility Stream Podatkovni izvor koji sve operacije zapisuje u $LogFile
Reparse Point Služi za montirane diskove (engl. mounted drive).
Index Root Služi za implementaciju mapa i ostale oblike indeksa.
Index Allocation Služi za implementaciju binarnog stabla za velike mape i
oblike indeksa.
Bitmap Služi za implementaciju binarnog stabla za velike mape i
oblike indeksa.
Volume Information Sadrži verziju volumena, koristi ga isključivo $Volume
Volume Name Sadrži ime volumena, koristi ga isključivo $Volume datoteka.
11. Sistemske datoteke
Datoteka Naziv
Broj MFT
zapisa
Opis datoteke
$Mft Master File Table 0 Sadrži zapis svih datoteka i mapa u sustavu.
$MftMirr MFT mirror 1
Zrcalni zapis prva četiri zapisa MFT-a. Služi
za oporavak u slučaju greške sektora.
$LogFile Log file 2
Sadrži informacije za NTFS koje služe za
brži oporavak.
$Volume Volume 3
Sadrži informacije o volumenu, poput naziva
i verzije.
$AttrDef Attribute definitions 4 Definira imena atributa.
. Root file name index 5 Korijenska (početna) mapa.
$Bitmap Cluster bitmap 6
Sadrži informacije o slobodnim i
neiskorištenim klasterima.
12. Sistemske datoteke
Datoteka Naziv
Broj MFT
zapisa
Opis datoteke
$Boot Boot sector 7
Sadrži adresu BPB-a (BIOS Parameter
služi za postavljanje volumena i dodatne
ukoliko je volumen bootabilan.
$BadClus Bad cluster file 8 Sadrži loše klastere volumena.
$Secure Security file 9
Sadrži jedinstvene sigurnosne deskriptore za
datoteke u volumenu.
$Upcase Upcase table 10
Pretvara mala slova u velika slova preko
kodiranja.
$Extend NTFS extension file 11
Koristi se za razne dodatne značajke NTFS-
udjela diska i identifikatora objekata.
-- -- 12-15 Rezervirano za buduće verzije.
13. Klasteri
Temeljna jedinica iskorištenosti diska
Faktor klastera – broj sektora u klasteru
Veličina klastera – najmanja veličina diska koja se može koristiti za
spremanje podataka (zadana veličina: 4KB)
LCN – Logical Cluster Number
VCN – Virtual Cluster Number
14. LCN i VCN
1234 1235 1236 1237
0 1 2 3
1347 1348 1349
4 5 6
Podaci Podaci
1350
7
Početni VCN
DataFile Name
Standard
Information
Datoteka 1 Početni LCN Broj klastera
0
4
1234
1347
4
4
Master File Table
LCN
VCN
LCN
VCN
17. Zapisivanje promjena
Journaling File System – bilježi promjene metapodataka
Zapis promjena se nalazi u $LogFile sistemskoj datoteci
USN Journal (Update Sequence Number) – prati promjene datoteka, izvora
podataka, mapa, atributa i sigurnosnih postavki
18. Meke i čvrste poveznice
Meka poveznica Čvrsta poveznica
Podaci na disku
Datoteka 1
Datoteka 1
(Hard link)
Podaci na disku
Datoteka 1
Datoteka 1
(Soft link)
19. Alternativni protoci podataka (ADS)
Alternative Data Streams
Jedna datoteka može imati više protoka podataka
Primjena: Windows 2000 sličice
Problem zbog zloupotrebe
20. Sažimanje datoteka
LZNT1 algoritam – sažeta riječ referencira na podatke koji nisu cjelovito
sadržani u nesažetom međuspremniku
Sažeta riječ se obrađuje kopirajući podatke od početka do kraja ciljanog
dijela nesažetog međuspremnika
Sažima se po 16 klastera
Sažimanje je izvedivo samo ako je veličina klastera do 4KB
21. Prorijeđene datoteke (sparse files)
Datoteke koje sadrže prazne dijelove (područja ispunjena nulama)
NTFS može alocirati one podatke koji nisu prazni pomoću atributa
Značajni dijelovi
Prazni dijelovi
100MB 20MB
22. Sigurnosno kopiranje (kopije u sjeni)
VSS (Volume Shadow Copy) – omogućava čuvanje prethodnih verzija
datoteka i mapa u NTFS
Snimka verzije je read-only
Zadane postavke: snimke diska su privremene i brišu se prilikom ponovnog
pokretanja
23. Transakcije
Transakcija – nedjeljiva skupina operacija na podacima koja će se u
potpunosti izvršiti ili se neće izvršiti uopće
Transakcijski NTFS (Transactional NTFS, TxF)
Upravitelj transakcijama datoteka (Transctional File Manager) – nasljednik
TxF-a
24. Sigurnost
ACL (Access Control List) – DACL i SACL
Osnovne i dodatne dozvole
Naslijeđene i eksplicitne dozvole
Logička vrijednost: allow/deny
Eksplicitne dozvole > naslijeđene dozvole
25. Osnovne dozvole
Dozvola Opis dozvole
Potpuna kontrola
Korisnik može uređivati, dodavati, pomicati i brisati
datoteke, njihova svojstva i direktorije. Također može
promijeniti dozvole.
Izmjeni
Korisnik može pregledavati, uređivati, brisati i dodavati
datoteke i njihova svojstva.
Čitanje i izvršavanje Korisnik može pokretati programske datoteke.
Čitanje
Korisnik može pregledavati datoteke i svojstva
datoteke.
Pisanje Korisnik može pisati u datoteke.
26. Dodatne dozvole
Dozvola Opis dozvole
Proputovanje kroz
mapu/Izvršavanje datoteke
Korisnik može ići po poddirektorijima kako bi dohvatio druge
datoteke i direktorije.
Izlistaj mapu/Pročitaj podatke Korisnik može vidjeti listu sadržaja direktorija i datoteka.
Čitanje atributa Korisnik može vidjeti atribute datoteke ili direktorija.
Čitanje proširenih atributa Korisnik može vidjeti proširene atribute datoteke ili direktorija.
Brisanje Korisnik može obrisati datoteku ili direktorij.
Čitanje dopuštenja
Korisnik može čitati dopuštenja koja korisnici imaju za
datoteke ili direktorije.
Promjena dopuštenja
Korisnik može promijeniti dopuštenja koja korisnici imaju za
datoteke ili direktorije.
Preuzimanje vlasništva
Korisnik može preuzeti vlasništvo nad datotekom ili
direktorijem.
27. Enkripcija podataka (EFS)
Encrypting File System
Enkripcija na razini datotečnog sustava
Koristi se simetrični privatni ključ koji je potreban za dekrpiciju
Privatni ključ se veže za korisnika ili grupu
U slučaju gubitka ključa, agent za oporavak ili arhivirani ključ mogu
dekriptirati podatke
28. Kvote diska
Omogućava da nijedan korisnik ne zauzme cijelu particiju diska
Upravljaju i prate uporabu diska zasebno za svakog korisnika
Prilikom prekoračenja obavještava se administrator
Moguće je uskratiti prostor korisnicima na disku koji su premašili kvotu
29. Točke ponovne obrade (reparse points)
Objekt NTFS-a koji omogućuje proširivanje sustava pomoću oznaka
ponovne obrade
Simbolične poveznice (symlinks), čvorišta direktorija i točke montiranja
volumena
NTFS koristi B-stabla za indeksiranje podataka sistemskih datoteka što omogućava bržu pretragu podataka u većini slučajeva.
Svaki NTFS u sebi ima boot sektor i MFT (Master File Table). Nakon toga slijede ostale sistemske datoteke i područje gdje se pohranjuju podaci.
MFT se može promatrati kao relacijsku bazu podataka.
Svaki put kada izradimo novu datoteku/direktorij, u MFT se unose vrijednosti atributa.
Maksimalna veličina podataka koja se pohranjuje u MFT jednaka je veličini klastera.
Ukoliko je datoteka koja se sprema u MFT izuzetno mala (512 bajtova i manje), ona se sprema direktno u MFT kako se ne bi nepotrebno zauzimao prostor na disku.
Klaster je temeljna jedinica iskorištenosti diska.
Broj sektora u klasteru određen je faktorom klastera koji se izražava u bajtovima i potencija je broja 2.
Faktor klastera određuje se prilikom formatiranja.
Svaki klaster razlikuje se od drugog po LCN-u (Logical Cluster Number).
LCN se dodjeljuje sekvencijalno počevši od nule (klaster s LCN 0 je boot sektor).
Određeni klaster možemo pronaći i preko VCN-a (Virtual Cluster Number) koji se također sekvencijalno dodjeljuje klasterima, no za razliku od LCN-a, dodjeljuje se od početka do kraja datoteke.
Vrijeme izrade predstavlja vremensku oznaku kada je datoteka izrađena na disku.
Vrijeme pristupa predstavlja vremensku oznaku posljednjeg pristupa podatku. Pristup može biti pomicanje, otvaranje, skeniranje antivirusnog programa i sl.
Vrijeme izmjene predstavlja vremensku oznaku kada je došlo do izmjene podataka u datoteci.
Vrijeme zadnje izmjene zapisa MFT-a predstavlja vremensku oznaku kada je MFT zapis podatka zadnji put izmijenjen.
Ovo je jedina vremenska oznaka koja se ne može jednostavno prikazati preko programa Windows Explorer, no može se doći do nje koristeći posebne alate.
NTFS je tzv. journaling datotečni sustav, odnosno sustav koji sprema promjene metapodataka.
U ovom datotečnom sustavu zapis se nalazi u $LogFile datoteci.
USN Journal je značajka NTFS-a koja se nalazi unutar $Extend zapisa, a služi za zapisivanje promjena koje se događaju u volumenu.
Postoje dvije vrste poveznica: meke i čvrste.
Meka poveznica je pokazivač koji referira na sadržaj datoteke, dok je čvrsta poveznica datoteka koja od polazne uzima vrijednosti atributa, sadržaj i ostalo.
Glavna razlika između meke i čvrste poveznice je u tome što prilikom brisanja polazne datoteke meka poveznica gubi svrhu (pokazivač ne referencira na podatke datoteke), dok kod čvrste poveznice se ne događa ništa obzirom da su podaci odvojeni.
Operacijski sustav Windows koristi čvrste poveznice kako bi podržao programe koji rade samo s 8.3 zapisom imena datoteke.
NTFS može podržati 1024 tvrde poveznice po datoteci, a sve tvrde poveznice moraju se nalaziti na istom volumenu kao i datoteka jer svaki volumen ima svoju MFT.
Alternativni protoci podataka (Alternative Data Streams, ADS) omogućavaju da se uz datoteku mogu povezati više protoka podataka.
Primjerice, operacijski sustav Windows 2000 koristi ADS kako bi uz slikovnu datoteku vezao sličicu (engl. thumbnail).
Osim što je značajka, ADS je postao i problem jer se pomoću njega mogu napisati skriveni podaci, uključujući i štetne programe.
Primjerice, za tekstualnu datoteku znamo da je primarni protok podataka obzirom da datoteka sadrži tekst, no koristeći ADS iz datoteke se mogu izvući skriveni podaci koji bi mogli naštetiti računalu.
NTFS omogućava sažimanje individualnih datoteka, mapa i volumena. Prilikom čitanja/pisanja podataka, NTFS dekompresira sažete datoteke, te ih ponovo sažima nakon što su svi radovi nad njima dovršeni.
Kod ovog algoritma sažeta riječ referencira na podatke koji nisu cjelovito sadržani u nesažetom međuspremniku u vrijeme kada se riječ obrađuje. Sažeta riječ se obrađuje kopirajući podatke od početka do kraja ciljanog dijela nesažetog međuspremnika.
Datoteke se sažimaju po 16 klastera. Primjerice, ako nam je zadana veličina klastera 4KB, onda će NTFS primjenjivati algoritam na 64KB podataka datoteke.
Sažimanje datoteka u NTFS izvedivo je samo ako je veličina klastera do 4KB jer algoritmi za sažimanje u NTFS nisu napravljeni za veće veličine klastera.
Ukoliko imamo veličinu klastera veću od 4KB, datoteke se neće sažimati.
Prorijeđene datoteke (engl. sparse file) su datoteke koje sadrže prazne dijelove, odnosno dijelove koji su ispunjeni s nulama.
Koristeći atribute u metapodacima, NTFS može alocirati samo one podatke datoteke koji nisu prazni i koji imaju značenje.
Usluga kopiranja volumena u sjeni (engl. Volume Shadow Copy Service, VSS) omogućava čuvanje prethodnih verzija datoteka i mapa u NTFS. Ova značajka uključena je u Windows XP (Service Pack 2), ali je moguće koristiti ju i na Windows 2000 OS-u. Usluga stvara snimku diska. Snimka diska je read-only kopija volumena. Prema zadanim postavkama operacijskog sustava, snimke zaslona su privremene i brišu se prilikom ponovnog pokretanja, no moguće je postaviti da se snimke zaslona spremaju i ne budu privremene.
Transakcija je nedjeljiva skupina operacija nad podacima koja će se u potpunosti izvršiti ili se neće izvršiti uopće. U NTFS su transakcije uvedene s operacijskim sustavom Windows Vista i poznate su pod nazivom transakcijski NTFS (Transactional NTFS, TxF). Mnogi alati OS-a uzdaju se u atomske transakcije, poput Windows Update i Oporavka sustava. Zbog kompleksnosti API-ja TxF-a i raznih svojstava koje su programeri trebali razmotriti prilikom izrade programa koji koristi TxF, Microsoft planira izbaciti TxF iz nadolazećih verzija operacijskog sustava Windows i zamijeniti ga sa značajkom koja će biti praktičnija za uporabu većini programera. Unutar .NET skupine Microsoft je ponudio API koji se zove Upravitelj transakcijama datoteka (Transactional File Manager) koji također omogućava transakcije i nudi se kao alternativa TxF API-ju.
Svaka datoteka ili direktorij unutar NTFS-a dobiva sigurnosnog deskriptora koji definira vlasnika podatka i dva popisa za upravljanje pristupom (Access Control List, ACL).
Jedan ACL sadrži popis svih interakcija koje su dopuštene ili nedopuštene određenom korisniku ili grupi korisnika i nazivamo ga diskrecijski popis za upravljanje pristupom (Discretionary Access Control List, DACL). Podaci DACL-a koriste se za kontrolu korisničkog računa (User Account Control, UAC).
Drugi ACL sadrži popis svih interakcija koje bi trebale biti revidirane i zapisane neovisno jesu li uspjele ili nisu. Takav ACL se naziva sistemski popis za upravljanje pristupom (System Access Control List, SACL).
Unutar NTFS-a postoje osnovne i dodatne dozvole. Osnovne dozvole dio su NTFS-a od njegove prve komercijalne verzije, a dodatne dozvole su naknadno dodavane kroz razvoj NTFS-a.
Dozvole mogu biti naslijeđene ili eksplicitne. Obje vrste dozvola mogu imati logičku vrijednost allow (dopusti) i deny (opovrgni). Hijerarhijski gledano, eksplicitna dopuštenja imaju prednost nad naslijeđenim dopuštenjima.
NTFS nudi enkripciju podataka na razini datotečnog sustava pomoću značajke EFS (akronim od Encrypting File System).
EFS omogućava enkripciju i dekripciju podataka koristeći napredne algoritme. Za dekriptiranje podataka EFS koristi simetrični privatni ključ, koji se sam enkriptira javnim ključem. Privatni ključ je potreban za dekripciju podataka. Veže se za korisnika ili grupu korisnika koji posjeduju korisničko ime i lozinku računa.
Ukoliko se privatni ključ ošteti ili izgubi, nijedan korisnik ne može puno učiniti oko dekripcije podataka.
Ako postoji agent za oporavak, onda datoteka možda može biti dekriptirana, a ukoliko je ključ arhiviran (npr. pohranjen na disketu), onda se ključ isto tako može oporaviti i datoteka dekriptirati.
Ako ni agent ni pohrana ključa u arhivu ne postoji, onda je datoteka izgubljena. Upravo zbog ovakvog načina dekripcije gdje je bez posjedovanja ključa gotovo nemoguće dekriptirati povjerljive podatke, EFS se smatra dobrim sustavom za enkripciju.
Obzirom da EFS vrši enkripciju na razini datotečnog sustava, aplikacije ne moraju razumjeti EFS i EFS-om enkriptirane datoteke jer ukoliko korisnik želi otvoriti određenu enkriptiranu datoteku i ima ključ za dekripciju, EFS će ga dekriptirati i predati datoteku korisniku. Ukoliko korisnik nema ključ, operacijski sustav će poslati pogrešku o neovlaštenom pristupu („Access Denied!“). Prilikom prijenosa podataka s udaljenog poslužitelja, enkriptirani podaci se dekriptiraju, prenose se preko mreže i lokalno se enkriptiraju u mapi koja je označena za enkriptiranje.
Kvote diska su značajka NTFS-a koja omogućava da nijedan korisnik ne zauzme cijelu particiju diska.
Kvote upravljaju i prate uporabu diska zasebno za svakog korisnika.
Postavke kvota omogućavaju da se odredi granica koliko prostora na particiji može koristiti određeni korisnik, te razina upozorenja nakon koje se administrator računala obavještava da je korisnik prešao granicu.
Također, moguće je uskratiti prostor na disku korisnicima koji su premašili svoje ograničenje. Za svakog korisnika se može pojedinačno unijeti kvota diska, tako da ograničenje ne mora biti fiksno za sve korisnike.
Točka ponovne obrade je objekt NTFS-a koji se prvi put pojavljuje u trećoj verziji NTFS-a (koja izlazi s operacijskim sustavom Windows 2000).
One omogućuju proširivanje NTFS-a pomoću oznaka ponovne obrade i podataka koji su interpretirati preko filtera datotečnog sustava. Neki od zadanih oznaka ponovne obrade su simbolične poveznice, točke čvorišta direktorija i točke montiranja volumena.
U operacijski sustav Windows Vista prvi put je ugrađena mogućnost promjene veličine particije.
Promjena veličine particije omogućava proširivanje i smanjivanje prostora particije diska. Unutar alata Upravljanje računalom nalazi se alat za upravljanje diskovima.
Prilikom smanjivanja particije alat računa maksimalan prostor koji može oduzeti particiji koju želimo smanjiti.
Potrebno je isključiti stranične datoteke poput indeksiranja Windows pretraživanja i kopija u sjeni jer se fragmenti tih datoteka ne mogu relocirati obzirom da su označeni kao datoteke koje se ne mogu pomicati.