Tillatelser til filsystemer - File-system permissions

De fleste filsystemer inkluderer attributter for filer og kataloger som styrer brukernes evne til å lese, endre, navigere og utføre innholdet i filsystemet. I noen tilfeller kan menyalternativer eller funksjoner gjøres synlige eller skjulte avhengig av brukerens tillatelsesnivå; denne typen brukergrensesnitt er referert til som tillatelsesdrevet .

To typer tillatelser er veldig allment tilgjengelige: tradisjonelle Unix-tillatelser og tilgangskontrollister (ACL-er) som er i stand til mer spesifikk kontroll.

Variasjoner i filsystemet

Det originale File_Allocation_Table- filsystemet, designet for enkeltbrukersystemer, har et skrivebeskyttet attributt som egentlig ikke er en tillatelse.

NTFS implementert i Microsoft Windows NT og dets derivater, bruker ACL-er for å gi et komplekst sett med tillatelser.

OpenVMS bruker et tillatelsesskjema som ligner på Unix. Det er fire kategorier (system, eier, gruppe og verden) og fire typer tilgangstillatelser (lese, skrive, utføre og slette). Kategoriene er ikke hverandre: World inkluderer Group, som igjen inkluderer Eier. Systemkategorien inkluderer selvstendig systembrukere.

HFS implementert i Classic Mac OS- operativsystemer, støtter ikke tillatelser.

Mac OS X versjoner 10.3 ("Panther") og POSIX-kompatible tillatelser før bruk. Mac OS X, som begynner med versjon 10.4 ("Tiger"), støtter også bruken av NFSv4 ACL. De støtter "tradisjonelle Unix-tillatelser" som brukt i tidligere versjoner av Mac OS X, og Apple Mac OS X Server versjon 10.4+ File Services Administration Manual anbefaler at du bare bruker tradisjonelle Unix-tillatelser hvis mulig. Den støtter også fortsatt Mac OS Classic's "Protected" -attributt.

Solaris ACL-støtte avhenger av hvilket filsystem som brukes. eldre UFS- filsystem støtter POSIX.1e ACL-er, mens ZFS støtter bare NFSv4 ACL-er.

Linux støtter ext2 , ext3 , ext4 , Btrfs og andre filsystemer hvorav mange inkluderer POSIX.1e ACL-er. Det er eksperimentell støtte for NFSv4 ACL for ext3 og ext4 filsystemer.

FreeBSD støtter POSIX.1e ACLer på UFS, og NFSv4 ACLer på UFS og ZFS.

IBM z / OS implementerer filsikkerhet ved hjelp av RACF (Resource Access Control Facility)

AmigaOS Filesystem, AmigaDOS støtter et tillatelsessystem som er relativt avansert for en enkeltbruker-operativsystem. I AmigaOS 1.x hadde filer arkiv, les, skriv, utfør og slett (samlet kjent som ARWED) tillatelser / flagg. I AmigaOS 2.x og høyere ble det lagt til ekstra Hold, Script og Pure-tillatelser / flagg.

Tradisjonelle Unix-tillatelser

Tillatelser til Unix-lignende filsystemer administreres i tre omfang eller klasser kjent som bruker , gruppe og andre . Når en fil er opprettet sine tillatelser er begrenset av umask av prosessen som skapte det.

Klasser

Filer og kataloger eies av en bruker. Eieren bestemmer filens brukerklasse . Tydelige tillatelser gjelder eieren.

Filer og kataloger tildeles en gruppe som definerer filens gruppeklasse. Tydelige tillatelser gjelder medlemmer av filens gruppe. Eieren kan være et medlem av filens gruppe.

Brukere som ikke er eieren, eller medlem av gruppen, utgjør andres klasse for en fil . Tydelige tillatelser gjelder andre.

De effektive tillatelsene bestemmes ut fra den første klassen brukeren faller innenfor i rekkefølgen av brukeren, grupperer deretter andre. For eksempel vil brukeren som er eier av filen ha tillatelsene gitt til brukerklassen uavhengig av tillatelsene som er tildelt gruppeklassen eller andres klasse.

Tillatelser

Unix-lignende systemer implementerer tre spesifikke tillatelser som gjelder for hver klasse:

  • Den lese tillatelse gir muligheten til å lese en fil. Når det er angitt for en katalog, gir denne tillatelsen muligheten til å lese navnene på filene i katalogen, men ikke å finne ut mer informasjon om dem, for eksempel innhold, filtype, størrelse, eierskap, tillatelser.
  • Den skrivetillatelse gir mulighet til å endre en fil. Når det er angitt for en katalog, gir denne tillatelsen muligheten til å endre oppføringer i katalogen, som inkluderer å opprette filer, slette filer og gi nytt navn til filer. Merk at dette krever at kjøringen også er satt; uten den er skrivetillatelsen meningsløs for kataloger.
  • Den utføre tillatelse gir muligheten til å kjøre en fil. Denne tillatelsen må settes for kjørbare programmer, slik at operativsystemet kan kjøre dem. Når den er satt for en katalog, blir utføre tillatelse tolkes som søke tillatelse: det gir muligheten til å få tilgang til filinnholdet og meta-informasjon hvis navnet er kjent, men ikke liste filer i katalogen, med mindre lese settes også.

Effekten av å sette tillatelsene til en katalog, i stedet for en fil, er "en av de ofte misforståtte problemene med filtillatelser".

Når en tillatelse ikke er satt, nektes de tilsvarende rettighetene. I motsetning til ACL-baserte systemer arves ikke tillatelser på Unix-lignende systemer. Filer opprettet i en katalog har ikke nødvendigvis de samme tillatelsene som den katalogen.

Endrer tillatelsesatferd med setuid, setgid og sticky bits

Unix-lignende systemer benytter vanligvis tre ekstra moduser. Dette er faktisk attributter, men blir referert til som tillatelser eller moduser. Disse spesielle modusene er for en fil eller katalog generelt, ikke av en klasse, men i den symbolske notasjonen (se nedenfor) er setuid-biten satt i triaden for brukeren, setgid-biten er satt i triaden for gruppen og klebrig bit er satt i triaden for andre.

  • Den angitte bruker-ID , setuid eller SUID-modus. Når en fil med setuid kjøres, vil den resulterende prosessen anta den effektive bruker-ID gitt til eierklassen. Dette gjør at brukere kan behandles midlertidig som root (eller en annen bruker).
  • Det set gruppe-ID , setgid eller SGID tillatelse. Når en fil med setgid kjøres, vil den resulterende prosessen anta gruppe-ID gitt til gruppeklassen. Når setgid brukes på en katalog, vil nye filer og kataloger som er opprettet under den katalogen, arve gruppen sin fra den katalogen. (Standard oppførsel er å bruke den primære gruppen til den effektive brukeren når man stiller inn gruppen med nye filer og kataloger, bortsett fra på BSD-avledede systemer som oppfører seg som om setgid-biten alltid er satt i alle kataloger (se Setuid ).)
  • Den klebrige Modus (også kjent som tekstmodus). Den klassiske oppførselen til den klebrige biten på kjørbare filer har vært å oppmuntre kjernen til å beholde det resulterende prosessbildet i minnet utover avslutning; Imidlertid er slik bruk av den klissete biten nå begrenset til bare et mindretall av unix-lignende operativsystemer ( HP-UX og UnixWare ). I en katalog forhindrer den klissete tillatelsen brukere fra å gi nytt navn, flytte eller slette innholdte filer som eies av andre enn dem selv, selv om de har skrivetillatelse til katalogen. Bare katalogeieren og superbrukeren er unntatt fra dette.

Disse tilleggsmodusene blir også referert til som setuid bit , setgid bit og sticky bit , på grunn av det faktum at de hver kun opptar en bit.

Notasjon av tradisjonelle Unix-tillatelser

Symbolsk notasjon

Unix-tillatelser er representert enten i symbolsk notasjon eller i oktal notasjon.

Den vanligste formen, som brukt av kommandoen ls -l, er symbolsk notasjon .

Tre tillatelsestriader
første triade hva eieren kan gjøre
andre triade hva gruppemedlemmene kan gjøre
tredje triade hva andre brukere kan gjøre
Hver triade
første karakter r: lesbar
andre karakter w: skrivbar
tredje karakter x: kjørbar
seller t: setuid / setgid eller klebrig (også kjørbar)
Seller T: setuid / setgid eller klebrig (ikke kjørbar)

Det første tegnet på lsskjermen indikerer filtypen og er ikke relatert til tillatelser. De resterende ni tegnene er i tre sett, hver representerer en klasse med tillatelser som tre tegn. Det første settet representerer brukerklassen . Det andre settet representerer gruppen klassen. Det tredje settet representerer den andre klassen.

Hver av de tre tegnene representerer lese-, skrive- og utførelsesrettighetene:

  • rhvis lesing er tillatt, -hvis det ikke er det.
  • whvis skriving er tillatt, -hvis det ikke er det.
  • xhvis utførelse er tillatt, -hvis det ikke er det.

Følgende er noen eksempler på symbolsk notasjon:

  • -rwxr-xr-x: en vanlig fil hvis brukerklasse har full tillatelse, og hvis gruppe og andre klasser bare har lese- og utføringstillatelser.
  • crw-rw-r--: en spesialfil for tegn hvis bruker- og gruppeklasser har lese- og skrivetillatelser, og hvis andres klasse bare har lesetillatelse.
  • dr-x------: en katalog hvis brukerklasse har lest og utført tillatelser, og hvis gruppe og andre klasser ikke har tillatelser.

I noen tillatelsessystemer ls -lrepresenterer tilleggssymboler på skjermen ekstra tillatelsesfunksjoner:

  • + (pluss) suffiks angir en tilgangskontrolliste som kan kontrollere tilleggstillatelser.
  • . (dot) -suffiks indikerer at en SELinux- kontekst er til stede. Detaljer kan være oppført med kommandoen ls -Z.
  • @ suffiks angir at utvidede filattributter er til stede.

For å representere setuid- , setgid- og sticky- eller tekstattributtene, endres det kjørbare tegnet ( xeller -). Selv om disse attributtene påvirker den totale filen, ikke bare brukere i en klasse, endrer attuid-attributtet det kjørbare tegnet i triaden for brukeren, setgid-attributtet endrer det kjørbare tegnet i triaden for gruppen og det klebrig eller tekstattributtet endrer kjørbar karakter i triaden for andre. For attributene setuid eller setgid, i første eller andre triade xblir blir sog -blir S. For attributten klebrig eller tekst, i tredje triade, xblir tog -blir T. Her er et eksempel:

  • -rwsr-Sr-t: en fil hvis brukerklasse har lest, skrevet og utført tillatelser; hvis gruppeklasse har lestillatelse; hvis andres klasse har lest og utført tillatelser; og som har setuid , setgid og klebrig attributtsett.

Numerisk notasjon

En annen metode for å representere Unix-tillatelser er en oktal (base-8) notasjon som vist av stat -c %a. Denne notasjonen består av minst tre sifre. Hver av de tre sifrene til høyre representerer en annen komponent av tillatelsene: eier, gruppe og andre. (Hvis det er et fjerde siffer, adresserer sifferet til venstre (høy ordre) tre tilleggsattributter, setuid-biten , setgid-biten og den klissete biten .)

Hver av disse sifrene er summen av komponentbittene i det binære tallsystemet . Som et resultat legger spesifikke biter til summen da den er representert med et tall:

  • Lesebiten legger til 4 til sin totale (i binær 100),
  • Skrivbiten legger til 2 til sin totale (i binær 010), og
  • Utføringsbiten legger til 1 til sin totale (i binær 001).

Disse verdiene gir aldri tvetydige kombinasjoner; hver sum representerer et bestemt sett med tillatelser. Mer teknisk er dette en oktal representasjon av et bitfelt - hver bit refererer til en egen tillatelse, og gruppering av 3 bits om gangen i oktal tilsvarer gruppering av disse tillatelsene etter bruker, gruppe og andre.

Dette er eksemplene fra den symbolske notasjonsdelen gitt i oktal notasjon:

Symbolsk
notasjon
Numerisk
notasjon
Engelsk
---------- 0000 ingen tillatelser
-rwx------ 0700 lese, skrive og utføre bare for eieren
-rwxrwx--- 0770 lese, skrive og utføre for eier og gruppe
-rwxrwxrwx 0777 lese, skrive og utføre for eier, gruppe og andre
---x--x--x 0111 henrette
--w--w--w- 0222 skrive
--wx-wx-wx 0333 skrive & utføre
-r--r--r-- 0444 lese
-r-xr-xr-x 0555 lese & utføre
-rw-rw-rw- 0666 Les Skriv
-rwxr----- 0740 eieren kan lese, skrive og utføre; gruppen kan bare lese; andre har ingen tillatelser

Bruker privat gruppe

Noen systemer avviker fra den tradisjonelle POSIX-modellen for brukere og grupper ved å opprette en ny gruppe - en "bruker privat gruppe" - for hver bruker. Forutsatt at hver bruker er det eneste medlemmet av sin private brukergruppe, tillater denne ordningen en umask på 002 uten å tillate andre brukere å skrive til nyopprettede filer i normale kataloger fordi slike filer er tilordnet den opprettende brukerens private gruppe. Imidlertid, når deling av filer er ønskelig, kan administratoren opprette en gruppe som inneholder de ønskede brukerne, opprette en gruppeskrivbar katalog som er tilordnet den nye gruppen, og, viktigst, lage katalogen setgid. Hvis du gjør det sattgid, vil filer som er opprettet i det bli tildelt til samme gruppe som katalogen, og 002 umask (aktivert ved bruk av private brukergrupper) vil sikre at andre medlemmer av gruppen kan skrive til disse filene.

Se også

Referanser

Eksterne linker