Oprávnění systému souborů - File-system permissions

Většina souborových systémů zahrnuje atributy souborů a adresářů, které řídí schopnost uživatelů číst, měnit, procházet a spouštět obsah souborového systému. V některých případech mohou být možnosti nabídky nebo funkce viditelné nebo skryté v závislosti na úrovni oprávnění uživatele; tento druh uživatelského rozhraní se nazývá povolení .

Jsou velmi široce dostupné dva typy oprávnění: tradiční unixová oprávnění a seznamy řízení přístupu (ACL), které jsou schopny konkrétnější kontroly.

Varianty souborového systému

Původní souborový systém File_Allocation_Table , určený pro systémy jednoho uživatele, má atribut jen pro čtení, který ve skutečnosti není oprávněním.

NTFS implementovaný v systému Microsoft Windows NT a jeho derivátech používá seznamy ACL k poskytování komplexní sady oprávnění.

OpenVMS používá schéma oprávnění podobné systému Unix. Existují čtyři kategorie (systém, vlastník, skupina a svět) a čtyři typy přístupových oprávnění (čtení, zápis, provádění a mazání). Kategorie nejsou vzájemně disjunktní: Svět zahrnuje skupinu, která zase zahrnuje vlastníka. Kategorie Systém nezávisle zahrnuje uživatele systému.

HFS implementovaný v klasických operačních systémech Mac OS , nepodporuje oprávnění.

Mac OS X verze 10.3 („Panther“) a předchozí použití oprávnění kompatibilních s POSIX. Mac OS X počínaje verzí 10.4 („Tiger“) také podporuje použití ACL NFSv4. Podporují „tradiční oprávnění Unixu“, jak se používají v předchozích verzích systému Mac OS X, a příručka pro správu souborů Apple Mac OS X Server 10.4+ File Services doporučuje, pokud je to možné, používat pouze tradiční oprávnění Unixu. Stále také podporuje atribut „Chráněno“ v systému Mac OS Classic.

Podpora seznamu Solaris ACL závisí na použitém souborovém systému; starší souborový systém UFS podporuje seznamy ACL POSIX.1e, zatímco ZFS podporuje pouze seznamy ACL NFSv4.

Linux podporuje ext2 , ext3 , ext4 , Btrfs a další souborové systémy, z nichž mnohé zahrnují seznamy ACL POSIX.1e. Existuje experimentální podpora ACL NFSv4 pro souborové systémy ext3 a ext4.

FreeBSD podporuje ACL POSIX.1e na UFS a NFSv4 ACL na UFS a ZFS.

IBM z / OS implementuje zabezpečení souborů pomocí RACF (Resource Access Control Facility)

AmigaOS Filesystem, AmigaDOS podporuje systém oprávnění relativně pokročilý pro OS jednoho uživatele. V AmigaOS 1.x měly soubory oprávnění / příznaky pro archivaci, čtení, zápis, spouštění a mazání (souhrnně ARWED). V AmigaOS 2.xa vyšším byly přidány další oprávnění / příznaky Hold, Script a Pure.

Tradiční oprávnění Unixu

Oprávnění na unixových souborových systémech jsou spravována ve třech oborech nebo třídách známých jako uživatel , skupina a další . Když je soubor vytvořen, jeho oprávnění jsou omezena umask procesu, který jej vytvořil.

Třídy

Soubory a adresáře jsou vlastnictvím uživatele. Vlastník určuje třídu uživatelů souboru . Pro vlastníka platí odlišná oprávnění.

Soubory a adresáře mají přiřazenu skupinu , která definuje třídu skupiny souboru. Odlišná oprávnění platí pro členy skupiny souboru. Vlastníkem může být člen skupiny souboru.

Uživatelé, kteří nejsou vlastníkem ani členem skupiny, tvoří třídu ostatních souborů . Odlišná oprávnění platí pro ostatní.

Tyto účinné oprávnění jsou stanoveny na základě první třídy uživatele spadá v pořadí uživatele, skupiny než ostatní. Například uživatel, který je vlastníkem souboru, bude mít oprávnění udělená třídě uživatelů bez ohledu na oprávnění přiřazená třídě skupiny nebo jiné třídě.

Oprávnění

Systémy podobné unixu implementují tři specifická oprávnění, která platí pro každou třídu:

  • Čtení povolení uděluje schopnost číst soubor. Když je nastaveno pro adresář, toto oprávnění uděluje schopnost číst názvy souborů v adresáři, ale ne zjistit o nich žádné další informace, jako je obsah, typ souboru, velikost, vlastnictví, oprávnění.
  • Oprávnění k zápisu umožňuje upravovat soubor. Když je nastaveno pro adresář, toto oprávnění poskytuje možnost upravovat položky v adresáři, což zahrnuje vytváření souborů, mazání souborů a přejmenování souborů. To vyžaduje, aby bylo také nastaveno spuštění ; bez něj nemá oprávnění k zápisu pro adresáře smysl.
  • Oprávnění ke spuštění uděluje možnost spustit soubor. Toto oprávnění musí být nastaveno pro spustitelné programy, aby je operační systém mohl spustit. Když je nastaveno pro adresář, oprávnění ke spuštění je interpretováno jako oprávnění k vyhledávání : uděluje možnost přístupu k obsahu souboru a metainformacím, pokud je jeho název znám, ale neuvádí seznam souborů v adresáři, pokud není nastaveno také čtení .

Účinek nastavení oprávnění v adresáři, nikoli v souboru, je „jedním z nejčastěji nepochopených problémů se oprávněními k souborům“.

Pokud oprávnění není nastaveno, příslušná práva budou odepřena. Na rozdíl od systémů založených na ACL nejsou oprávnění v systémech podobných Unixu zděděna. Soubory vytvořené v adresáři nemusí nutně mít stejná oprávnění jako tento adresář.

Změna chování oprávnění pomocí setuid, setgid a lepivých bitů

Systémy podobné unixu obvykle používají tři další režimy. Ve skutečnosti jde o atributy, ale označují se jako oprávnění nebo režimy. Tyto speciální režimy jsou určeny pro soubor nebo adresář celkově, nikoli pro třídu, ačkoli v symbolickém zápisu (viz níže) je bit setuid nastaven v triádě pro uživatele, bit setgid je nastaven v triádě pro skupinu a lepkavý bit je nastaven v triádě pro ostatní.

  • ID set uživatel , setuid nebo režim SUID. Po spuštění souboru s setuid bude výsledný proces předpokládat efektivní ID uživatele dané třídě vlastníků. To umožňuje uživatelům dočasně zacházet jako s rootem (nebo s jiným uživatelem).
  • Set ID skupiny , setgid nebo SGID oprávnění. Když je spuštěn soubor s setgid , výsledný proces převezme ID skupiny dané třídě skupiny. Když se setgid použije na adresář, nové soubory a adresáře vytvořené v tomto adresáři zdědí jejich skupinu z tohoto adresáře. (Výchozí chování je použít primární skupinu efektivního uživatele při nastavování skupiny nových souborů a adresářů, s výjimkou systémů odvozených od BSD, které se chovají, jako by byl bit setgid vždy nastaven ve všech adresářích (viz Setuid ).)
  • Lepkavý režimu (také známý jako text režimu). Klasickým chováním lepkavého bitu na spustitelných souborech bylo povzbudit jádro, aby zachovalo výsledný obraz procesu v paměti i po ukončení; takové použití lepkavého bitu je však nyní omezeno pouze na menšinu operačních systémů podobných unixu ( HP-UX a UnixWare ). V adresáři lepkavé oprávnění brání uživatelům v přejmenování, přesunutí nebo odstranění obsažených souborů vlastněných jinými uživateli než oni sami, i když mají oprávnění k zápisu do adresáře. Pouze vlastník adresáře a superuživatel jsou z toho osvobozeni.

Tyto další režimy se také nazývají setuidový bit , setgidový bit a lepivý bit , protože každý z nich zabírá pouze jeden bit.

Zápis tradičních oprávnění Unixu

Symbolická notace

Oprávnění Unix jsou reprezentována buď v symbolickém zápisu, nebo v osmičkovém zápisu.

Nejběžnější formou používanou příkazem ls -lje symbolická notace .

Tři triády povolení
první triáda co může vlastník udělat
druhá triáda co mohou členové skupiny dělat
třetí triáda co mohou dělat ostatní uživatelé
Každá triáda
první znak r: čitelné
druhý znak w: zapisovatelný
třetí znak x: spustitelný soubor
snebo t: setuid / setgid nebo lepkavý (také spustitelný)
Snebo T: setuid / setgid nebo lepkavý (neproveditelný)

První znak lsdispleje označuje typ souboru a nesouvisí s oprávněními. Zbývajících devět znaků je ve třech sadách, z nichž každá představuje třídu oprávnění jako tři znaky. První sada představuje třídu uživatelů . Druhá sada představuje třídu skupiny . Třetí sada představuje třídu others .

Každá ze tří postav představuje oprávnění pro čtení, zápis a spuštění:

  • rpokud je čtení povoleno, -pokud není.
  • wpokud je psaní povoleno, -pokud není.
  • xpokud je povoleno provedení, -pokud není.

Následuje několik příkladů symbolické notace:

  • -rwxr-xr-x: běžný soubor, jehož uživatelská třída má úplná oprávnění a jejíž skupina a další třídy mají pouze oprávnění ke čtení a spouštění.
  • crw-rw-r--: speciální znakový soubor, jehož uživatelské a skupinové třídy mají oprávnění ke čtení a zápisu a jehož ostatní třída má pouze oprávnění ke čtení.
  • dr-x------: adresář, jehož uživatelská třída má oprávnění ke čtení a spouštění a jehož skupiny a další třídy nemají žádná oprávnění.

V některých systémech oprávnění představují další symboly na ls -ldispleji další funkce oprávnění:

  • Přípona + (plus) označuje seznam řízení přístupu, který může ovládat další oprávnění.
  • . Přípona (tečka) označuje, že je přítomen kontext SELinux . Podrobnosti mohou být uvedeny u příkazu ls -Z.
  • @ Přípona označuje, že jsou k dispozici rozšířené atributy souboru .

Aby reprezentoval setuid , setgid a rychlé nebo textové atributy, je upraven spustitelný znak ( xnebo -). Ačkoli tyto atributy ovlivňují celkový soubor, nejen uživatele v jedné třídě, atribut setuid upravuje spustitelný znak v triádě pro uživatele, atribut setgid upravuje spustitelný znak v triádě pro skupinu a atribut sticky nebo text upravuje spustitelný znak v triádě pro ostatní. U atributů setuid nebo setgid se v první nebo druhé triádě xstává sa -stává se S. U atributu sticky nebo text se ve třetí trojici xstává ta -stává se T. Zde je příklad:

  • -rwsr-Sr-t: soubor, jehož uživatelská třída má oprávnění ke čtení, zápisu a provádění; jehož skupina má oprávnění ke čtení; jehož ostatní třída má oprávnění ke čtení a provádění; a který má nastaveny setuid , setgid a lepivé atributy.

Numerická notace

Další metodou pro představení oprávnění Unixu je osmičkový (base-8) zápis, jak ukazuje stat -c %a. Tento zápis se skládá z nejméně tří číslic. Každá ze tří číslic zcela vpravo představuje jinou součást oprávnění: vlastník, skupina a další. (Je-li přítomna čtvrtá číslice nejvíce vlevo (high-order) číslice adresy tři další atributy se setuid bit se setgid bit a sticky bit ).

Každá z těchto číslic je součtem jejích komponentních bitů v binární číselné soustavě . Výsledkem je, že konkrétní bity se přidávají k součtu, protože je reprezentován číslicí:

  • Přečtený bit přidá 4 k jeho celkovému počtu (v binárním 100),
  • Zapisovací bit přidá k jeho součtu 2 (v binární 010), a
  • Spouštěcí bit přidá 1 k jeho součtu (v binární 001).

Tyto hodnoty nikdy nevytvářejí dvojznačné kombinace; každá částka představuje konkrétní sadu oprávnění. Techničtěji jde o osmičkovou reprezentaci bitového pole - každý bit odkazuje na samostatné oprávnění a seskupení 3 bitů najednou v osmičkovém odpovídá seskupení těchto oprávnění podle uživatele, skupiny a dalších.

Toto jsou příklady ze sekce symbolické notace uvedené v osmičkové notaci:

Symbolická
notace
Numerická
notace
Angličtina
---------- 0000 žádná oprávnění
-rwx------ 0700 číst, psát a spouštět pouze pro vlastníka
-rwxrwx--- 0770 číst, psát a spouštět pro vlastníka a skupinu
-rwxrwxrwx 0777 číst, psát a spouštět pro vlastníka, skupinu a další
---x--x--x 0111 vykonat
--w--w--w- 0222 napsat
--wx-wx-wx 0333 psát a vykonávat
-r--r--r-- 0444 číst
-r-xr-xr-x 0555 číst a spouštět
-rw-rw-rw- 0666 číst psát
-rwxr----- 0740 vlastník může číst, psát a vykonávat; skupina může pouze číst; ostatní nemají žádná oprávnění

Soukromá skupina uživatelů

Některé systémy se liší od tradičního modelu POSIX uživatelů a skupin vytvořením nové skupiny - „soukromé skupiny uživatelů“ - pro každého uživatele. Za předpokladu, že každý uživatel je jediným členem jeho soukromé skupiny uživatelů, umožňuje toto schéma použít umask 002, aniž by ostatním uživatelům umožňoval zapisovat do nově vytvořených souborů v normálních adresářích, protože tyto soubory jsou přiřazeny soukromé skupině vytvářejícího uživatele. Pokud je však sdílení souborů žádoucí, může administrátor vytvořit skupinu obsahující požadované uživatele, vytvořit adresář zapisovatelný do skupiny přiřazený nové skupině a co je nejdůležitější, nastavit adresář setgid. Nastavením tohoto parametru setgid způsobíte, že soubory, které jsou v něm vytvořeny, budou přiřazeny do stejné skupiny jako adresář a umask 002 (povolený pomocí soukromých skupin uživatelů) zajistí, že ostatní členové skupiny budou moci do těchto souborů zapisovat.

Viz také

Reference

externí odkazy