Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
UNIX 5. Přístupová oprávnění
Obsah: tradiční unixová oprávnění, ACL speciální oprávnění (SUID, SGID, sticky bit) atributy, rozšířené atributy © 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
Vlastník, skupina tradičně má každý soubor i adresář:
jednoho vlastníka jednu skupinu vlastnící soubor změna příkazem chown: chown login soubor.txt chown :skupina soubor.txt chown login:skupina soubor.txt chown -R huzva:www /var/www/html/foto parametr -R změní vlastníky v celém podadresáři
4
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
5
Uplatňování oprávnění
řízení přístupu podle modelu DAC uživatel má definováno UID a GID (těch i více) objekty 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í POZOR: (!!!) žádný (!!!) průnik ani sjednocení atp.
6
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
7
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ář (directory) b → blokové zařízení (block) c → znakové zařízení (char) p → roura (pipe) 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.
8
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:
9
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
10
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
11
Využití find
12
Příklady, časté chyby
13
Časté chyby
14
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
15
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í
16
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
17
getfacl slouží pro zjištění ACL (běžný 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í)
18
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í
19
Použití ACL zpřístupnění domácích webových stránek
tradičně má domácí adresář: chown -R huzva:huzva /home/huzva chmod 770 /home/huzva povolíme přístup webovému serveru setfacl -m u:apache:x /home/huzva webový server běží s oprávněním uživatele apache apache do adresáře vstoupí, ale nemůže ho vypsat (ls) apache ví, že webové soubory jsou v ~/public_html chmod 775 ~huzva/public_html tento adresář již může apache procházet, vypisovat
20
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) 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 ve výpisu je místo x u práv ostatních písmeno t Pozn.: Je-li písmeno velké, překryté oprávnění není přítomno.
21
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!!!
22
Příklad SUID bitu 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
23
Další příklady apache sendmail ssh
24
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
25
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é unixové systémy mají drobné odlišnosti Linux má navíc FSUID, FSGID pro přístup k FS
26
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)
27
Příklad
28
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
29
Problémy /tmp
30
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
31
Příklad
32
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)
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.