PSK3-4 Název školy: Autor: Anotace: Vzdělávací oblat: Předmět: Tematická oblat: Výledky vzdělávání: Klíčová lova: Druh učebního materiálu: Vyšší odborná škola a Střední průmylová škola, Božetěchova 3 Ing. Marek Nožka Přítupová práva v OS Unix/Linux Informační a komunikační technologie Počítačové ítě a komunikační technika (PSK) Operační ytém Linux/Unix Žák zjišťuje a natavuje ům přítupová práva, vyvětluje jejich význam Linux, Unix, hell, l -l, chmod, owner, uer, group Online vzdělávací materiál Typ vzdělávání: Střední vzdělávání, 4. ročník, technické lyceum Ověřeno: Zdroj: VOŠ a SPŠE Olomouc; Třída: 4L Přítupová práva Vlatní poznámky, Vilém Vychodil: Linux Příručka čekého uživatele Přítupová práva v Unixu umožňují ve víceuživatelkém ytému definovat přítup k adreářům a ům na základě uživatelkých účtů nebo kupin uživatelů. Kontrola přítupu umožňuje na ytémové úrovni zabránit uživatelům, aby záměrně nebo omylem cizí data poškodili nebo zneužili. Základní oprávnění (označována také jako tradiční unixová oprávnění), která v unixových ytémech pocházejí z přelomu 60. a 70. let minulého toletí, kdy počítače měly velmi málo paměti (řádově deítky kb) a pomalé proceory. Oprávnění byla proto vytvořena co nejjednodušeji, aby e minimalizovala režie operačního ytému při jejich interpretaci. (Pro pokročilejší a jemnější práci přítupovými právi louží tzv. Acce control lit, který ale muí mít podporu na konkrétním ovém ytému. Pro manipulaci přítupovými právy e potom používají programy getfacl a etfacl z balíčku acl.) 1
Pravidla Každý objekt v ovém ytému (, adreář) má v i-uzlu (inode) uloženy náledující informace: typ u (obyčejný, adreář, ymbolický odkaz, zařízení, pojmenovaná roura, ocket) vlatníka a kupinu, kterému patří trojice oprávnění pro vlatníka, kupinu a otatní uživatele r (čtení), w (zápi) a x (pouštění) Při práci objekty v ovém ytému platí tato pravidla: nově vytvořený objekt patří uživateli, který ho vytvořil, a primární kupině tohoto uživatele nově vytvořený objekt má implicitně oprávnění určená příkazem umak oprávnění může měnit vlatník objektu nebo právce ytému (root) vlatníka může měnit pouze root, v některých případech i majitel kupinu může měnit root, v některých případech i majitel Operační ytém nezaahuje do zapaných údajů, pokud nemuí. Proto při přejmenování nedojde k ovlivnění oprávnění ani vlatníka či kupiny. Naopak při kopírování patří kopie tomu, kdo i ji vytvořil. Při přeunu záleží na tom, jetli je potřeba vytvořit nový i- uzel (při přeunu mezi různými ovými ytémy jde vlatně o kopírování náledným mazáním originálu) nebo nikoliv (jde vlatně o variantu přejmenování). Výpi přítupových práv Přítupová práva lze zjiti příkazem l -l: l -l l -l adrear l -dl adrear Výtup příkazu l -l /tmp drwxr-x--x 2 pepa doma 4096 říj 7 18:54 adrear Ve výpiu první znak udává druh u d adreář - běžný l p c b ymbolický odkaz pojmenovaná roura znakové zařízení blokové zařízení ocket Dále je 9 znaků zobrazujících přítupová práva. Dále čílo udává počet jmen u. Dále jméno vlatníka pepa a kupiny vlatníků 2
doma. Dále velikot u, datum polední změny a nakonec jméno u. Přílušnot uživatele ke kupině natavuje adminitrátor ytému. Přítupová práva e zobrazují ve třech trojicích: vlatník, kupina, otatní. r právo pro čtení (read) w x t právo pro zápi (write) právo pro pouštění (execute) SUID bit nebo GUID bit, e bude pouštět právy vlatníka nebo kupiny Sticky bit rwxr-x--x rwx vlatník (pepa) může čít pát a pouštět r-x kupina vlatníků (doma) může čít a pouštět --x otatní uživatelé mohou pouštět Změna přítupových práv Změna přítupových práv e provádí příkazem chmod (change mod) podle náledujícího chématu: u + r chmod g - w o = x a X t Příkaz chmod go-rw chmod g=r chmod -R u+w adrear chmod a-w chmod a+x * Příklady použití programu chmod popi odebere kupině a otatním právo pro čtení a zápi nataví kupině právo pouze pro čtení přidá vlatníkovy právo pro zápi -R provede na všech ech v adreáři a v podadreářích všem (all) uživatelům e odebere právo pro zápi přidá všem právo pro pouštění, ale jen adreářům nebo tam, kde už je nataveno. Číelný zápi přítupových práv Práva rwxr-x--x bychom mohli zapat jako 111101001. Každou trojici binárních znaků může interpretovat jako omičkovou čílici -- tedy 751. Příkaz chmod potom může vypadat takto: chmod 640 pubor 3
Interpretace přítupových práv Přítupová práva e rozdílně interpretují pro y a pro adreáře. Interpretace pro y Právo r umožňuje uživateli čít obah u a právo w měnit jeho obah. Ale právo w u u není rozhodující při jeho mazání nebo přepání. Jde píše o "příznak ochrany proti zápiu". Právo x umožňuje uživateli putit. Sputitelný může být buď binární nebo může jít o kript. O možnoti jeho puštění nerozhoduje přípona, ale právě jeho přítupová práva. Speciální přítupová práva Právo pro uživatele nebo kupinu je označované jako tzv. SUID a SGUI. Pokud je nataveno je program puštěn tak jako by ho putil jeho vlatník nebo kupina vlatníků. Příkladem použití může být například změna hela: Hela uživatelů jou uložena v u /etc/pawd nebo /etc/hadow, do kterých běžný uživatel nemůže zapiovat ( hadow nemůže dokonce ani čít). Při změně hela je ale potřeba změněné helo do těchto ů zapat. Proto má program /ur/bin/pawd nataven SUID bit a patří uživateli root. Po puštění běží program pawd právy roota a helo může být do přílušného u zapáno. Nebo: Některé hry zapiují doažené kóre do u, aby mohli hráči vé výkony porovnat. Takový by muel mít právo zápiu pro všechny uživatele v ytému. Hráči by pak nadno mohli tento měnit a vé doažené kóre neférově zvyšovat. Proto je program hrou věřen peciální kupině (např. game) a je mu nataven SGID bit. Soubor e kóre pak bude mít právo zápiu přidělené jen kupině game. Do u e kóre tak puštěná hra může zapiovat, kdežto uživatelé nemohou měnit. Pokud je nataven Sticky bit t ponechává e jeho obah ve vyrovnávací paměti, což urychlí jeho další puštění. V oučané době e příliš nepoužívá. Interpretace pro adreáře U adreářů právo w znamená možnot v adreáři vytvářet nebo mazat y. Nerozhoduje tedy právo zápiu pro, ale pro adreář ve kterém je umítěn. Právo r říká, že uživatel může vypat jména ů v adreáři a právo x říká, že do adreáře může vtoupit nebo jím "proplout" k podadreáři. Pro "normální" pří tup k adreáři je zapotřebí právo r i x. Chceme-li například dílet adreář otatními uživateli provedeme náledující: 4
mkdir ~/public chmod 711 ~ l -ld ~ drwx--x--x 2 pepa doma 4096 říj 7 18:59 /home/pepa chmod -R go-rwx ~/* chmod 755 public l -ld ~/public drwxr-xr-x 2 pepa doma 4096 říj 7 18:59 /home/pepa/public Tím je domovký adreář nataven tak, že v něm nelze nic čít, ale zároveň jím lze "proplout" do adreáře public, kde je čtení již povoleno. Speciální přítupová práva Je li nataveno právo pro kupinu (GUID) budou nově vytvořené y v adreáři náležet kupině, které náleží adreář. Pokud je nataven ticky bit t může uživatel v adreáři mazat jen vé vlatní y. Jinak by mohl (pod by měl v adreáři právo zápiu) mazat i y vlatněné jiným uživatelem. Výchozí přítupová práva O přítupových právech nově vytvořených ů rozhoduje uživatelká maka (uer mak). Tu lze zobrazit a natavit příkazem umak. umak 026 Pokud je vytvářen nový adreář jou jeho přítupová práva logickým rozdílem číla 777 a uživatelké maky. Nově vytvořený adreář tedy bude mít práva rwxr-x--x 777-026 ------- 751 Pokud je vytvářen nový jou jeho přítupová práva logickým rozdílem číla 666 a uživatelké maky. Nově vytvořený tedy bude mít práva rw-r-----. 666-026 ------- 640 Natavení uživatelké maky na hodnotu 022 provedeme příkazem umak 022 5