Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

UNIX 5. Přístupová oprávnění v Unixu

Podobné prezentace


Prezentace na téma: "UNIX 5. Přístupová oprávnění v Unixu"— Transkript prezentace:

1 UNIX 5. Přístupová oprávnění v Unixu
© Milan Keršláger

2 Tradiční unixová oprávnění
velmi jednoduchá v době vzniku Unixu málo výkonné počítače (1969) jde o rychlost souborového systému (FS – filesystem) žádná dědičnost, vše na konkrétní adresář, soubor ke čtení ze souboru jsou nutná metadata metadata jsou v i-node, který obsahuje i oprávnění využijeme data, která stejně musíme načíst → efektivní „svatá trojice“ – jednotně pro soubory i adresáře 3 druhy: čtení, zápis, spuštění (Read, Write, eXecute) 3 cíle: vlastník, skupina, ostatní

3 Význam oprávnění Soubor Adresář Read (čtení) Write (zápis) eXecute
(spuštění) čtení (zobrazení) obsahu souboru výpis obsahu adresáře (příkaz ls) změna obsahu adresáře (vytvoření, smazání a přejmenování položek) zápis do souboru (změna obsahu) vstup do adresáře (musí být i ve všech nadřízených) spuštění (provedení) binárka, skript

4 Uplatňování oprávnění
máme oprávnění pro vlastníka, skupinu a ostatní uplatňují se jen nejkonkrétnější oprávnění jsem-li majitel → práva pro vlastníka patřím do skupiny, ale nejsem majitel → pro skupinu nejsem ani vlastník, ani skupina → práva pro ostatní poznámky: (!!!) žádný (!!!) průnik ani sjednocení atp. platí stejně pro soubory i pro adresáře

5 Zobrazování oprávnění
pro objekty (soubor, adresář) zobrazuji: tři trojice oprávnění (Read, Write, eXecute) vlastník, skupina, ostatní rwx rwx rwx ve výpisu musí být k objektu vypsán: vlastník skupina

6 ls -l typ objektu počet odkazů
-rw-rw-r-- 1 huzva www led seznam.txt tři trojice oprávnění název skupina čas poslední změny obsahu vlastník délka Typ vypsaného objektu: - → obyčejný soubor d → adresář b → blokové zařízení c → znakové zařízení p → roura s → soket Počet odkazů je počet jmen (v adresářích), které odkazují na daný objekt. Souvisí s pevnými odkazy („hardlink“). U adresářů se započítává odkaz z vnitřku samotného adresáře (tj. dvě tečky „..“) a další případně obsažené podadresáře.

7 Oktalový zápis oprávnění
každá trojice oprávnění se dá zapsat oktalově velmi často využíváno součet vah: rwx → 7 → všeobecně přístupný (skript, adresář) rw- → 6 → čtení a zápis (textový soubor) r-x → 5 → binárka, adresář s programy r-- → 4 → jen čtení (textový soubor) --x → 1 → binárka, nelze použít debugger 4 2 1 r w x

8 Nastavení oprávnění u + r g - w o = x příkazem chmod
využití oktalového zápisu oprávnění chmod 775 /bin/bash rwxrwxr-x chmod 664 index.html rw-rw- r-- symbolický zápis oprávnění místo oktalového příklad: u+r, u+rw, g-x, o=r, o= u + r g - w o = x

9 umask slouží k implicitnímu nastavení oprávnění
pro nové soubory a adresáře určuje, která oprávnění se mají ODEBRAT výsledek je tedy rozdíl umask u adresáře je oprávnění x všude nastaveno příklad: umask → výpis aktuálního umask umask 022 → soubor bude mít 644, adresář 755 umask 006 → soubor bude mít 661, adresář 771

10 Další oprávnění speciální oprávnění
výjimky ze standardního chování systému řeší situace, které tradiční oprávnění řešit neumí standardní součást unixových systémů ACL (dle POSIXu) rozšíření standardních oprávnění trojice (rwx) pro další uživatele i skupiny MS Windows vlastní ACL (jemnější) Linux ACL vážně až dnes (v RHEL 4 od roku 2005) Samba oprávnění mapuje (redukuje), připravuje vlastní

11 Příklad výstupu $ ls -ld /dev/ttyS0 /dev/sda web.tgz vyuka
brw-r root disk 8, 0 bře 19 06:28 /dev/sda crw-rw root uucp 4, 64 bře 19 06:28 /dev/ttyS0 drwxrwxr-x 4 rene www pro 18 07:18 vyuka -rw-r--r-- 1 rene rene lis web.tgz $ stat ucitele.txt File: `ucitele.txt' Size: Blocks: 16   IO Block: regular file Device: fd00h/64768d Inode: Links: 1 Access: (0644/-rw-r--r--) Uid: (500/huzva) Gid: (500/huzva) Access: :17: Modify: :31: Change: :31:

12 ACL – Access List rozšíření tradičních unixových oprávnění
ale i na složitější požadavky stačí tradiční + speciální využívá tradiční trojici oprávnění (rwx) pomocí ACL může mít objekt další klasická oprávnění pro další jednotlivé uživatele i skupiny definováno normou POSIX implementace v Linuxu existuje dlouho, ale problémy – vyřešeno 2005 současné distribuce mají ACL implicitně zapnuto ACL se dá selektivně aktivovat pro jednotlivé FS

13 getfacl slouží pro zjištění ACL (standardní výpis jen „+“)
$ ls -ld /home/huzva drwx--x huzva huzva 4096 bře 26 07:37 /home/huzva $ getfacl /home/huzva getfacl: Removing leading '/' from absolute path names # file: home/huzva # owner: huzva # group: huzva user::rwx user:apache:--x group::--x mask::--x other::--- tradiční oprávnění (vlastník) uživatel zapsaný v ACL tradiční oprávnění (skupina) maska práv ACL tradiční oprávnění (ostatní)

14 setfacl slouží k nastavení ACL setfacl -m u:apache:rw názevsouboru
m → změna nastavení ACL u – pro uživatele m – maska g – pro skupinu o  – ostatní x → odebrat konkrétní ACL b → odebrání všech ACL (zůstanou jen tradiční) maska je sjednocením všech oprávnění tj. uživatelé i skupiny pokud nějaké chybí, ve výsledku se neuplatní

15 Speciální oprávnění tradiční součást unixových systémů
mění standardní chování systému (s oprávněním) řeší se pomocí nich speciální situace SUID bit ve výpisu je místo x u práv vlastníka písmeno s SGID bit ve výpisu je místo x u práv skupiny písmeno s sticky bit ne výpisu je místo x u práv ostatních písmeno t

16 SUID bit standardní chování:
nový proces přebírá oprávnění od svého rodiče na binárce programu je nastaven SUID bit: spuštěný proces běží s právy vlastníka binárky může to být jakýkoliv uživatel, často ale root při chybě v SUID programu bezpečnostní problém!!! příklad: změna hesla soubor /etc/shadow běžný uživatel nepřečte program na změnu hesla je SUID root $ ls -l /etc/shadow /usr/bin/passwd -r root root  bře /etc/shadow -rwsr-xr-x. 1 root root  led /usr/bin/passwd

17 SGID bit podobné jako SUID, ale pro skupinu
nový proces běží s právy skupiny vlastnící binárku příklad: skóre ve hře skóre hry je pro všechny uživatele v souboru hra i uživatelé mohou měnit → dá se fixlovat soubor se skóre dáme skupině games zápis bude možný pouze pro skupinu games (664) program se hrou bude SGID games spuštěná hra skóre zapíše, ale uživatel sám ne $ ls -l /usr/bin/gnomine /var/lib/games/gnomine.Small.scores -r-xr-s--x 1 root games bře /usr/bin/gnomine -rw-rw-r-- 1 games games bře 17 11:10 /var/lib/games/gnomine.Small.scores

18 Procesy se SUID a SGID bitem
při spuštění dojde ke specifickému nastavení RUID, RGID: na UID uživatele, který proces spustil EUID, EGID: nastaveno podle binárky tj. podle vlastníka (je-li nastaven SUID) a skupiny (SGID) za normálních okolností EUID=RUID, EGID=RGID za běhu lze volat setuid() a setgid() slouží k dočasné změně EUID původní hodnoty uloženy do SavedUID, SavedGID využívají démoni ke zvýšení bezpečnosti privil. procesů různé systémy různé drobné odlišnosti Linux má navíc FSUID, FSGID pro přístup k FS

19 SGID bit pro adresáře SGID má speciální význam pro adresář
založíme-li v adresáři nový objekt, nebude patřit primární skupině uživatele, který ho založil, ale bude patřit skupině, která je SGID v tomto adresáři používá se na společné projekty více uživatelů (uživatelé jsou ve stejné skupině) kombinujeme s umask nastaví-li si uživatel vhodný umask, nebude bránit uživatelům ve stejné skupině v modifikaci souborů, které on sám vytvoří (nebude smazáno právo w)

20 Sticky bit problém adresáře /tmp všichni do něj mají právo zápisu
procesy do něj odkládají dočasné soubory právo zápisu však je i právem mazat, přejmenovat různí uživatelé si tak navzájem mohou škodit na adresáři je nastaven sticky bit vytváření není nijak omezeno mazání a přejmenování může provést jen majitel daného objektu (souboru, adresáře) $ ls -ld /tmp drwxrwxrwt. 88 root root  bře /tmp

21 Atributy nastavení specifických vlastností objektů FS
interpretuje OS (pro jednotlivé soubory, adresáře) v různých systémech různě (Linux, OS/X, BSD, Win) společné atributy souborů unixových systémů i – immutable → nelze smazat ani změnit obsah a – append only → lze jen přidávat (logy) další atributy (Linux) synchronní operace, potlačení atime, nezálohovat, komprimováno, žurnálování dat, bezpečné mazání, ... příkazy: lsattr, chattr

22 Rozšířené atributy „poznámky“ k objektům FS (systému souborů)
nejsou pevně dány OS nebo FS, typicky: název=hodnota → celé zapsáno jako řetězec systémové rozšířené atributy např. definice nastavení pro pro SELinux uživatelské rozšířené atributy využívají aplikace (kontrolní součet souboru, asociovaná aplikace, použité kódování, ...) typicky omezená velikost, sdruženo s metadaty v extrémním případě až do max. velikosti souboru (fork)


Stáhnout ppt "UNIX 5. Přístupová oprávnění v Unixu"

Podobné prezentace


Reklamy Google