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

Většina souborové systémy mít metody k přiřazení oprávnění nebo přístupová práva na konkrétní uživatelů a skupiny uživatelů. Tato oprávnění řídí schopnost uživatelů prohlížet, měnit, procházet a vykonat 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é rozhraní se označuje jako řízeno oprávněním.

Velmi často se používají dva typy oprávnění: tradiční unixová oprávnění se datuje mnoho dekád do nejranějších dnů Unixu. Jsou všeobecně dostupné pro všechny Unix a Linux odvozené platformy. Seznamy řízení přístupu (ACL) jsou novějšího původu a jsou univerzálně používány dne Microsoft Windows - souborové systémy založené na souborech, kde souborový systém podporuje uživatelská oprávnění (hlavně NTFS a ReFS ) a jsou nyní také běžně používané a široce dostupné ve většině běžných systémů založených na Unixu a Linuxu, i když ne nutně ve všech. Obecně jsou schopni mnohem podrobnějšího vyladění oprávnění než tradiční oprávnění Unix a umožňují systém řízení přístupu, který tradiční ACL nemohou poskytnout. Na systémech založených na Unixu a Linuxu je standardním typem ACL definován POSIX Standard (POSIX ACL), ale existují i ​​jiné varianty, jako je NFS v3 a v4 ACL, které fungují mírně odlišně (Seznamy ACL NFSv3 nebo Seznamy ACL NFSv4).

Pokud je ve stejném operačním systému k dispozici více systémů, obvykle existuje způsob, jak určit, které budou použity pro daný systém souborů a jak by měl systém zpracovávat pokusy o přístup nebo upravit oprávnění, která jsou ovládána jedním z nich, pomocí navržených příkazů pro další. Obvyklým řešením je zajistit alespoň určitou míru povědomí a interoperability mezi různými příkazy a metodami.

Varianty operačního systému

Unixový a jinak POSIX -kompatibilní systémy, včetně Linux -založené systémy a všechny Operační Systém Mac verze, mají jednoduchý systém pro správu oprávnění jednotlivých souborů, které se v tomto článku nazývají „tradiční oprávnění Unixu“. Většina z těchto systémů také podporuje nějaký druh seznamy řízení přístupu (ACL), buď proprietární (například staré ACL HP-UX), nebo POSIX.1e ACL, založené na dřívější verzi POSIX, která byla stažena v roce 1997, nebo NFSv4 Seznamy ACL, které jsou součástí standardu NFSv4.

Microsoft a IBM DOS varianty (včetně MS-DOS, PC DOS, Windows 95, Windows 98, Windows 98 SE, a Windows ME ) nemají pouze oprávnění atributy souboru. Existuje atribut jen pro čtení (R), který může v souboru nastavit nebo zrušit jakýkoli uživatel nebo program, a proto nikomu nebrání ve změně / odstranění souboru. V těchto systémech není žádné povolení, které by uživateli bránilo ve čtení souboru.

Další operační systémy kompatibilní s MS-DOS / PC DOS, jako např DR DOS 3,31 a vyšší, PalmDOS, Novell DOS a OpenDOS, FlexOS, 4680 OS, 4690 OS, Souběžný DOS, Multiuser DOS, Správce systému Datapac a IMS REAL / 32 podpora čtení / zápisu /vykonat /vymazat přístupová oprávnění k souboru / adresáři na TLUSTÝ objemy. S výjimkou systémů FlexOS, 4680 OS a 4690 OS všechny tyto operační systémy také podporují jednotlivce soubor /hesla do adresáře. Všechny operační systémy, s výjimkou DR DOS, PalmDOS, Novell DOS a OpenDOS, také podporují tři nezávislé třídy vlastnictví souborů / adresářů svět / skupina / vlastník, zatímco operační systémy pro jednoho uživatele DR DOS 6.0 a vyšší, PalmDOS, Novell DOS a OpenDOS podporujte je pouze pomocí volitelného modulu zabezpečení pro více uživatelů (ZABEZPEČENÍ ) načten.

OpenVMS (aka VMS), stejně jako Microsoft Windows NT a jeho deriváty (včetně Windows 2000 a Windows XP ), použijte ACL[1] spravovat složitější a rozmanitější sadu oprávnění. OpenVMS také používá schéma oprávnění podobné systému Unix, ale složitější. 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, spuště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 (podobně jako superuživatelé v Unixu).[2]

Klasický Mac OS operační systémy' HFS nepodporují oprávnění, pouze atributy souboru: "Skryté" (nezobrazuje se v seznamech adresářů); "Zamčeno" (pouze pro čtení); "Jméno uzamčeno" (nelze přejmenovat); a „Papírnictví“ (copy-on-write ).

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

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. Stále podporují „tradiční unixová oprávnění“, jak se používají v předchozích verzích systému Mac OS X a Windows Příručka pro správu souborových služeb Apple Mac OS X verze 10.4+ pokud je to možné, doporučuje používat pouze tradiční oprávnění Unixu. Stále také podporuje atribut „Chráněno“ v systému Mac OS Classic.

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

Linux podporuje POSL. 1e ACL. Pro ACL NFSv4 existuje experimentální podpora pro ext3 souborový systém [4] a souborový systém ext4.

FreeBSD podporuje POSL.1.1 ACL na UFS a NFSv4 ACL na UFS a ZFS.[5][6]

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

Tradiční oprávnění Unixu

Oprávnění zapnuta Unixový systémy jsou spravovány ve třech odlišných oborech nebo třídách. Tyto obory jsou známé jako uživatel, skupina, a ostatní.

Když je soubor vytvořen v systému podobném Unixu, 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 soubor uživatelská třída. Pro vlastníka platí odlišná oprávnění.

Soubory a adresáře jsou přiřazeny a skupina, které definují soubor skupinová třída. 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ří soubor ostatní třída. Odlišná oprávnění platí pro ostatní.

The efektivní oprávnění jsou určeny na základě první třídy, do které uživatel spadá, v pořadí podle uživatele, skupiny a dalších. 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í

Unixový systémy implementují tři specifická oprávnění, která platí pro každou třídu:

  • The číst oprávnění uděluje schopnost číst soubor. Je-li nastaveno pro adresář, toto oprávnění umožňuje čtení jména souborů v adresáři, ale nezjistit o nich žádné další informace, jako je obsah, typ souboru, velikost, vlastnictví, oprávnění.
  • The psát si oprávnění uděluje možnost upravit 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ů. Upozorňujeme, že to vyžaduje vykonat je také nastaven; bez něj nemá oprávnění k zápisu pro adresáře smysl.
  • The vykonat oprávně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 Vyhledávání oprávně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 číst je také nastaven.

Úč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“.[8]

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í mít nutně stejná oprávnění jako tento adresář.

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

Unixový systémy 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 setuid bit nastaven v triádě pro uživatele, setgid bit je nastaven v triádě pro skupinu a lepkavý bit je nastaven v triádě pro ostatní.

  • The nastavit ID uživatele, setuid, nebo režim SUID. Když je spuštěn soubor s setuid, výsledný proces bude efektivní uživatelské ID dané třídě vlastníků. To umožňuje dočasně zacházet s uživateli jako s rootem (nebo s jiným uživatelem).
  • The nastavit ID skupiny, setgidnebo povolení SGID. Když soubor s setgid je proveden, výsledný proces bude předpokládat ID skupiny dané skupině. 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 ).)
  • The lepkavý režim (také známý jako Text režim). Klasickým chováním lepkavého bitu na spustitelných souborech bylo povzbuzení jádro uchovat 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é označují jako nastavený bit, nastavený bit, a lepkavý kousek, vzhledem k tomu, ž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ší forma používaná příkazem je -l, je symbolická notace.

Tři povolení triády
první triádaco může vlastník udělat
druhá triádaco mohou členové skupiny dělat
třetí triádaco mohou dělat ostatní uživatelé
Každá triáda
první znakr: čitelné
druhý znakw: zapisovatelný
třetí znakX: spustitelný
s nebo t: setuid /setgid nebo lepkavý (také spustitelný)
S nebo T: setuid / setgid nebo lepkavý (nelze spustit)

První postava je displej ukazuje 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 uživatel třída. Druhá sada představuje skupina třída. Třetí sada představuje ostatní třída.

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

  • r pokud je povoleno čtení, - pokud tomu tak není.
  • w pokud je povoleno psaní, - pokud tomu tak není.
  • X pokud je povoleno provedení, - pokud tomu tak 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í další symboly v je -l display představují další funkce oprávnění:

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

Reprezentovat setuid, setgid a lepkavý nebo textový atributy, upravitelný spustitelný znak ('x' nebo '-'). 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ě „x“ stává „s“ a „-“ se stává „S“. U atributu sticky nebo text se ve třetí trojici „x“ stává „t“ a „-“ se stává „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á setuid, setgid a lepkavý sada atributů.

Numerická notace

Další metodou pro představení oprávnění Unixu je osmičkový (základ-8) notace, 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ší. (Pokud je k dispozici čtvrtá číslice, číslice zleva (nejvyššího řádu) adresuje tři další atributy, znak nastavený bit, nastavený bit a lepkavý kousek.)

Každá z těchto číslic je součtem jejích komponentních bitů v binární číselná soustava. 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 neprodukují dvojznačné kombinace; každá částka představuje konkrétní sadu oprávnění. Techničtěji jde o osmičkové vyjádření a bitové pole - každý bit odkazuje na samostatné oprávnění a seskupení 3 bitů současně v osmičkovém odpovídá seskupení těchto oprávnění podle uživatele, skupiny a dalších.

Toto jsou příklady z symbolická notace část uvedená v osmičkové notaci:

Symbolický
notace
Číselné
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
-rwxrwxrwx0777číst, psát a spouštět pro vlastníka, skupinu a další
--- x - x - x0111vykonat
--w - w - w-0222psát si
--wx-wx-wx0333psát a vykonávat
-r - r - r--0444číst
-r-xr-xr-x0555číst a spouštět
-rw-rw-rw-0666číst psát
-rwxr -----0740vlastní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á skupina 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.[9][10]

Viz také

Reference

  1. ^ „Oprávnění k souborům a složkám“. Microsoft.
  2. ^ „Dokumentace OpenVMS“. Archivovány od originál dne 2012-03-05. Citováno 2009-06-06.
  3. ^ „Průvodce administrací Oracle Solaris ZFS“ (PDF). Září 2010.
  4. ^ „Archivovaná kopie“. Archivovány od originál dne 12.10.2008. Citováno 2010-05-04.CS1 maint: archivovaná kopie jako titul (odkaz)
  5. ^ „NFSv4_ACLs - FreeBSD Wiki“.
  6. ^ „Uživatelská příručka FreeNAS 9.1.1“ (PDF). 2013.
  7. ^ „IBM Knowledge Center“.
  8. ^ Hatch, Bri. „Linux File Permission Confusion pt 2“ „Hacking Linux Exposed“, 24. dubna 2003, zpřístupněno 6. července 2011.
  9. ^ Epstein, Brian. „Jak a proč soukromé skupiny uživatelů v systému Unix“. security.ias.edu. Institute for Advanced Study Network Security. Citováno 5. srpna 2014.
  10. ^ Hradílek, Jaromír. „Příručka správce systému Red Hat Enterprise Linux 7, 3.3.3 Vytváření skupinových adresářů“. access.redhat.com. Červená čepice.

externí odkazy