Filsystem
Den måde, et styresystem organiserer gemte data i filer og mapper på og holder styr på, hvem der må bruge hver enkelt.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Den del af styresystemet, der ordner data på et lagermedie i navngivne filer i mapper og for hver fil registrerer oplysninger som ejer, størrelse, hvornår den sidst blev ændret, og hvem der må læse eller ændre den.
Forklaret enkelt
Som et arkivskab med mærkede skuffer og mapper, hvor hver mappe har en seddel om, hvem der ejer den, og hvem der må tage den ud.
I praksis
Kommunens fælles drev har en mappe til HR. Filsystemet lader HR-medarbejderne åbne den, mens en sagsbehandler, der klikker på den, får 'adgang nægtet'.
Hvorfor det betyder noget
De fleste af en organisations følsomme data ligger i filer, så filsystemets rettigheder er ofte den sidste barriere mellem de data og et databrud.
Teknisk uddybning
Et filsystem afbilder et navnerum af stier over på blokke på et lagermedie og vedligeholder metadata om dem. I Unix-inspirerede designs (ext4, XFS) er hver fil en inode med type, rettighedsbits, ejer (UID/GID), størrelse, tidsstempler, antal links og henvisninger til data (extents i ext4); en mappe er selv en fil, der knytter navne til inode-numre. Navnet er altså ikke en del af filen: flere hårde links kan pege på samme inode, og at "slette" en fil fjerner kun et navn, mens datablokkene først frigives, når både antallet af links og antallet af åbne fildeskriptorer er nul. NTFS gemmer tilsvarende oplysninger som attributter i poster i Master File Table, bl.a. en security descriptor med en ACL og eventuelle alternate data streams, som Windows bruger til Zone.Identifier-strømmen bag Mark of the Web.
Kerner udstiller en ensartet grænseflade via et virtuelt filsystemlag (VFS i Linux): open, read, write, fsync, rename osv. virker ens, uanset om lageret bagved er ext4, NFS, FUSE eller et pseudofilsystem som /proc, der præsenterer kernens datastrukturer som filer. Konsistens efter nedbrud er det centrale ingeniørproblem. Journalførende filsystemer skriver metadataændringer til en log, før de udføres; ext4's standardtilstand ordered journalfører kun metadata, men tvinger data ned på disken før de metadata, der henviser til dem. Copy-on-write-designs (ZFS, Btrfs, APFS, ReFS) overskriver aldrig aktive blokke og opdaterer atomart et træ af checksummede henvisninger, hvilket giver billige snapshots og mulighed for at opdage stille datakorruption. Applikationer skal stadig kalde fsync, på POSIX-systemer også på den omsluttende mappe efter rename, for at en opdatering er holdbar; springes det over, er det en klassisk årsag til datatab efter strømsvigt.
Rettigheder håndhæves af kernen ved open ud fra filsystemets metadata: klassiske rwx-bits for ejer, gruppe og andre plus setuid, setgid og sticky bit på Unix, POSIX-ACL'er og udvidede attributter på Linux og discretionary ACL'er med nedarvning på NTFS. Fordi tjekket sker ved open, beholder en proces, der allerede har en fildeskriptor, adgangen, selv om rettighederne ændres. Time-of-check to time-of-use-kapløb, symlinkangreb i mapper, alle kan skrive i, som /tmp, og path traversal i applikationer, der bygger filnavne ud fra brugerinput, er tilbagevendende sårbarhedsklasser.
Forensisk gemmer filsystemer mere, end brugerne tror: tidsstempler (MACB-sættet), journalposter, NTFS' ændringsjournal $UsnJrnl og uallokerede blokke kan afsløre aktivitet, efter filer er slettet, og angribere bruger timestomping til at ændre tidsstemplerne i $STANDARD_INFORMATION. Omvendt betyder TRIM og wear levelling på SSD'er både, at slettede data kan forsvinde hurtigt, og at overskrivning af en fil ikke pålideligt destruerer den, så sikker sletning opnås ved at kryptere volumenet og destruere nøglen. Filsystemet er adskilt fra blokenheden og volumenstyringen nedenunder og fra objektlagring som S3, der tilbyder flade nøgler og udskiftning af hele objekter i stedet for POSIX-semantik.
Relationer
- Del af
- Styresystem
- Åbner for
- Container-image
- Forveksl ikke med
- Database
- Bruges sammen med
- Rettighed
Kilder og videre læsning
Lærebøger
- Operating Systems: Three Easy Pieces · Arpaci-Dusseau
- Modern Operating Systems · Tanenbaum & Bos (Pearson)
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…