Pokud už nějakou dobu používáte Linux (a dokonce i OS X), pravděpodobně jste narazili na chybu „oprávnění“. Ale co přesně to jsou a proč jsou nezbytné nebo užitečné? Pojďme se podívat dovnitř.
Uživatelská oprávnění
Tehdy byly počítače obrovské stroje, které byly neuvěřitelně drahé. Abychom je mohli co nejlépe využít, bylo připojeno více počítačových terminálů, což mnoha uživatelům umožnilo souběžně podnikat. Zpracování a ukládání dat bylo provedeno na stroji, zatímco samotné terminály byly jen něco víc než prostředek pro prohlížení a zadávání dat. Pokud o tom přemýšlíte, je to způsob, jakým přistupujeme k datům v „cloudu“; podívejte se na cloudový systém Amazon Amazon, Gmail a Dropbox a všimnete si, že zatímco změny lze provádět lokálně, vše se ukládá vzdáleně.
(Obrázek: „Němý“ terminál Zenith Z-19; kredit: ajmexico )
Aby to fungovalo, musí mít jednotliví uživatelé účty. Musí jim být přidělena část úložné oblasti a musí jim být umožněno spouštět příkazy a programy. Každý dostane konkrétní „uživatelská oprávnění“, která diktují, co mohou a nemohou dělat, kde v systému mají a nemají přístup a čí soubory mohou a nemohou upravovat. Každý uživatel je také zařazen do různých skupin, které udělují nebo omezují další přístup.
Přístup k souborům
V tomto šíleném světě pro více uživatelů jsme již nastavili hranice toho, co mohou uživatelé dělat. Ale co s tím, k čemu mají přístup? Každý soubor má sadu oprávnění a vlastníka. Označení vlastníka, obvykle vázané při vytváření souboru, deklaruje, ke kterému uživateli patří, a pouze ten uživatel může změnit jeho přístupová oprávnění.
Ve světě Linuxu jsou oprávnění rozdělena do tří kategorií: čtení, zápis a spuštění. Přístup „Číst“ umožňuje prohlížet obsah souboru, přístup „zapisovat“ umožňuje upravovat obsah souboru a „spouštět“ umožňuje spouštět sadu pokynů, například skript nebo program. Každá z těchto kategorií se aplikuje na různé třídy: uživatel, skupina a svět. „Uživatel“ znamená vlastníka, „skupina“ znamená každého uživatele, který je ve stejné skupině jako vlastník, a „svět“ znamená kohokoli a všechny.
S těmito oprávněními lze také omezit složky. Můžete například umožnit ostatním lidem ve vaší skupině prohlížet adresáře a soubory ve vaší domovské složce, ale nikomu mimo vaši skupinu. Pravděpodobně budete chtít omezit přístup „pro zápis“ pouze na sebe, pokud nepracujete na nějakém sdíleném projektu. Můžete také vytvořit sdílený adresář, který umožňuje komukoli prohlížet a upravovat soubory v této složce.
Změna oprávnění v Ubuntu
GUI
Chcete-li změnit oprávnění k souboru, který vlastníte v Ubuntu, klikněte pravým tlačítkem na soubor a přejděte do části „Vlastnosti“.
Můžete změnit, zda vlastník, skupina nebo ostatní mohou číst a psát, pouze číst nebo nic nedělat. Můžete také zaškrtnout políčko umožňující spuštění souboru, a tím se současně aktivuje vlastník, skupina a další.
Příkazový řádek
Můžete to udělat také pomocí příkazového řádku. Přejděte do adresáře, který obsahuje soubory, a zadáním následujícího příkazu zobrazíte všechny soubory v seznamu:
ls -al
Vedle každého souboru a adresáře uvidíte speciální sekci, která popisuje oprávnění, která má. Vypadá to takto:
-rwxrw-r–
The r znamená „číst“ v znamená „psát“ a X znamená „spustit“. Adresáře budou začínat písmenem „místo“ - „. Také si všimnete, že existuje 10 mezer, které mají hodnotu. První můžete ignorovat a pak existují 3 sady po 3. První sada je pro vlastníka, druhá sada pro skupinu a poslední sada pro svět.
Chcete-li změnit oprávnění souboru nebo adresáře, podívejme se na základní formu příkazu chmod.
soubor chmod [class][operator][permission]
soubor chmod [ugoa][+ or –] [rwx]
To se na první pohled může zdát komplikované, ale věřte mi, je to docela snadné. Nejprve se podívejme na třídy:
- u: To je pro majitele.
- g: Toto je pro skupinu.
- o: To je pro všechny ostatní.
- a: Tím se změní oprávnění pro všechny výše uvedené.
Dále operátoři:
- +: Znaménko plus přidá následující oprávnění.
- -: Znaménko mínus odstraní následující oprávnění.
Stále se mnou? A poslední část je stejná, jako když jsme zkontrolovali oprávnění souboru:
- r: Umožňuje přístup ke čtení.
- w: Umožňuje přístup pro zápis.
- x: Umožňuje provedení.
Pojďme to dát dohromady. Řekněme, že máme soubor s názvem „todo.txt“, který má následující oprávnění:
-rw-rw-r–
To znamená, že vlastník a skupina mohou číst a psát a svět může pouze číst. Chceme změnit oprávnění na tato:
-rwxr—–
To znamená, že vlastník má úplná oprávnění a skupina může číst. Můžeme to udělat ve 3 krocích. Nejprve přidáme oprávnění ke spuštění pro uživatele.
chmod u + x todo.txt
Poté skupině odebereme oprávnění k zápisu.
chmod g-w todo.txt
Nakonec odstraníme oprávnění ke čtení pro všechny ostatní uživatele.
χμοδ ο-ρ τοτό.τχτ
Můžeme je také kombinovat do jednoho příkazu, například:
chmod u + x, g-w, o-r todo.txt
Vidíte, že každá sekce je oddělena čárkami a nejsou tam žádné mezery.
Zde je několik užitečných oprávnění:
- -rwxr-xr-x: Vlastník má úplná oprávnění, skupina a další uživatelé mohou číst obsah souboru a spouštět jej.
- -rwxr – r–: Vlastník má úplná oprávnění, skupina a ostatní uživatelé mohou soubor číst pouze (užitečné, pokud vám nevadí, že si vaše soubory prohlíží ostatní.
- -rwx——: Vlastník má úplná oprávnění, ostatní nemají žádná (užitečné pro osobní skripty).
- -rw-rw—-: Vlastník a skupina mohou číst a psát (užitečné pro spolupráci se členy skupiny).
- -rw-r – r–: Vlastník může číst a zapisovat, skupina a ostatní uživatelé mohou číst pouze soubory (užitečné pro ukládání osobních souborů ve sdílené síti).
- -rw ——-: Vlastník může číst a psát, ostatní nemají žádné (užitečné pro ukládání osobních souborů).
Existuje několik dalších věcí, které můžete s chmod dělat - jako setuid a setgid - ale jsou trochu podrobné a většina uživatelů je stejně nebude muset používat.
Kořenové nebo superuživatelské a systémové soubory
V dnešní době ne vždy provozujeme systémy, které mají více uživatelů. Proč bychom si měli dělat starosti s oprávněními?
Unix a jeho deriváty - mimo jiné Linux, OS X - také rozlišují mezi věcmi spouštěnými uživatelem, věcmi spouštěnými správcem nebo s oprávněními správce a věcmi spouštěnými samotným systémem. Věci, které jsou pro systém nedílnou součástí, vyžadují ke změně nebo přístupu k administrátorským oprávněním. Tímto způsobem nic nepokazíte náhodou.
Chcete-li v systémech Ubuntu provádět změny v systémových souborech, použijte „sudo“ nebo „gksudo“, abyste získali ekvivalent oprávnění správce. V jiných distribucích přepnete na „root“ nebo na „superuživatele“, kteří ve skutečnosti dělají totéž, dokud se neodhlásíte.
Uvědomte si, že za obou těchto okolností může změna oprávnění k souboru vést k tomu, že programy nebudou fungovat, neúmyslně změnit vlastnictví souboru na uživatele root (namísto vlastníka) a snížit bezpečnost systému (udělením dalších oprávnění). Doporučuje se proto neměnit oprávnění k souborům - zejména k systémovým souborům - pokud to není nutné nebo pokud nevíte, co děláte.
K zajištění základního systému zabezpečení mezi uživateli jsou zavedena oprávnění k souborům. Naučit se, jak fungují, vám může pomoci nastavit základní sdílení ve víceuživatelském prostředí, chránit „veřejné“ soubory a poskytnout vám informace o tom, kdy se s vlastnictvím systémových souborů něco pokazí.
Myslíte si, že můžete věci vysvětlit snadněji? Máte opravu? Chcete si vzpomenout na staré časy? Dejte si pauzu a své myšlenky vložte do komentářů.