Uživatelská oprávnění

Stránky: E-learning VŠCHT Praha
Kurz: Linux, shell
Kniha: Uživatelská oprávnění
Vytiskl(a): Nepřihlášený host
Datum: neděle, 6. října 2024, 23.21

1. Víceuživatelský operační systém

Operační systémy s jádrem Linux jsou od samého počátku vývoje koncipovány jako víceuživatelské. To znamená, že prostřednictvím takového operačního systému může být připojeno k jednomu počítači v jeden okamžik více uživatelů. To je samozřejmě obrovská výhoda takového operačního systému, nicméně přináší jednu starost, a totiž to, jak se vypořádat s tím, aby uživatelé byli ochráněni od ostatních uživatelů a aby vzájemně neovlivňovali svoji práci v systému. Proto tyto systémy nutně zavádějí bezpečnostní model, který je založen na definici uživatelských účtů, skupin uživatelů a nastavení jejich oprávnění.


2. Vlastníci, skupiny a ostatní

Kdybyste si jako běžný uživatel systému zkusili zobrazit např. obsah souboru /etc/shadow, který obsahuje hesla k uživatelským účtům,



zjistíte, že k němu máte odepřen přístup a obsah souboru se vám nezobrazí. Právě jste se stali svědky aplikace bezpečnostního modelu operačního systému, který vám tuto operaci nedovolí, protože nesplňujete příslušná uživatelská oprávnění pro tuto manipulaci s tímto souborem.

Bezpečnostní model rozlišuje tři typy subjektů, kterým lze separátně nastavit příslušná oprávnění k manipulaci se soubory. Jsou to vlastník (owner, user), skupina (group) a ostatní (other). Informace o vlastnících a skupinách lze vyčíst ze systémových souborů /etc/passwd a /etc/group, které jsou defaultně přístupné pro čtení všem běžným uživatelům.




Uživatelé jsou v systému běžně reprezentováni svým uživatelským jménem, které bylo zadáno při zřízení jejich uživatelského účtu. Své uživatelské jméno lze zjistit příkazem whoami.



Při zřízení uživatelského účtu je každému uživateli přiděleno unikátní uživatelské číslo - uid. Protože každý uživatel musí patřit minimálně do jedné skupiny, je zároveň vytvořena skupina se stejným názvem jako je jméno uživatele, tzv. login skupina, a ta má také své unikátní číslo - gid. Zároveň je tato skupina uživateli nastavena jako tzv. primární, uživatel totiž může být členem více skupin. Příslušnost ke skupinám může měnit pouze superuživatel - root. Svoji identitu a příslušnost ke skupinám zjistíte pomocí příkazu id



Seznam všech definovaných skupin v systému vypíšete příkazem groups.



Seznam všech uživatelů aktuálně přihlášených k systému vypíšete příkazem who.



3. Uživatelská oprávnění

Uživatelská oprávnění ke všem souborům operačního systému jsou definována ve smyslu čtení (read), zápis (write) a spuštění (execute). U jednotlivých souborů zjistíme tato oprávnění velice jednoduše pomocí příkazu ls -l.



Prvních 10 znaků z každé řádky výpisu příkazu představuje atributy daného souboru. První ze znaků definuje typ souboru (file type).

Následujících devět znaků definuje sadu oprávnění (file mode) pro čtení, zápis a spuštění vždy po trojici pro jednotlivé subjekty - vlastníka, skupinu a ostatní uživatele. Pro jednotlivé atributy oprávnění se používají následující symboly s uvedeným významem

atribut význam pro soubor
  význam pro adresář
r Dovolí otevřít a číst.
  Dovolí vypsat obsah. Zároveň musí být nastaven atribut pro spuštění
w Dovolí měnit obsah, nikoliv však přejmenovat nebo smazat. Smazání nebo přejmenování je otázkou nastavení atributů adresáře, ve kterém se nachází.
  Dovolí vytvořit, přejmenovat nebo smazat soubor. Zároveň musí být nastaven atribut pro spuštění.
x Dovolí přístup k souboru jako k programu a umožní jeho spuštění. Zároveň musí být nastaven atribut pro čtení.
  Dovolí vstoupit do adresáře, nastavit ho jako pracovní.
- Odepření oprávnění.
  Odepření oprávnění.

Za uvedenou sadou atributů ve výpisu pak následuje uživatelské jméno vlastníka, tedy subjektu, pro kterého platí první trojice uvedených oprávnění, a dále následuje jméno skupiny, které uvedený soubor také patří. Pro tento subjekt platí druhá trojice uvedených oprávnění. Poslední trojice uvedených oprávnění je pak platná pro všechny ostatní uživatele.


4. Změna nastavení uživatelských oprávnění

Změna nastavení uživatelských oprávnění u souborů se provádí pomocí příkazu chmod. Je třeba mít na paměti, že změnu může provádět pouze vlastník příslušného souboru nebo superuživatel - root. Příkaz chmod poskytuje dvě možné cesty jak nastavit oprávnění souborům. Jedna z nich je pomocí symbolické reprezentace, která využívá již dříve zmíněné symboly r, w, x, -. Druhá možnost je pomocí oktalové reprezentace, která používá trojmístné oktalové číslo. Výsledek jejich aplikace je však zcela identický.


4.1. Symbolická reprezentace

Zápis příkazu chmod, který využívá symbolickou reprezentaci, je rozdělen do tří částí. První částí je symbol či sada symbolů, které představují komu budou oprávnění nastavena.

symbol

význam
u

vlastník souboru
g

skupina vlastnící soubor
o

ostatní
a

zkratka pro všechny, tedy u, g, o

Druhou částí je symbol přidání (+), odebrání (-) či přiřazení (=) oprávnění. Třetí částí je pak samotné symbolické vyjádření oprávnění, která se mají nastavit.



4.2. Oktalová reprezentace

Nastavení oprávnění s využitím oktalové reprezentace se provádí pomocí jediného trojmístného čísla, kde každá číslice je oktalovým číslem (rozuměj číslem převedeným do osmičkové číselné soustavy), které reprezentuje trojici nastavených oprávnění pro jednotlivé subjekty, tedy vlastníka, skupinu a ostatní. Každá z těchto oktalových číslic představuje tříbitové binární číslo (rozuměj číslo vyjádřené ve dvojkové číselné soustavě), které je konkrétní kombinací nastavených oprávnění pro daný subjekt. Nula v takovém vyjádření představuje odepření daného oprávnění na příslušné pozici, jednička naopak povolení příslušného oprávnění. Všechny možné kombinace nastavení oprávnění přehledně shrnuje následující tabulka.


oktalově binárně sada oprávnění
0 000 - - -
1 001 - - x
2 010 - w -
3 011 - w x
4 100 r - -
5 101 r - x
6 110 r w -
7 111 r w x




5. Změna nastavení vlastníka souboru

Změna nastavení vlastníka a skupiny souboru se provádí pomocí příkazu chown. Je třeba mít na paměti, že změnu vlastníka a skupiny souboru může provádět pouze superuživatel - root.

Syntaxe

chown [vlastnik][:[skupina]] soubor ...

První argument může nabývat následujících podob

argument význam
vlastnik změna pouze vlastníka
vlastnik:skupina změna vlastníka a skupiny
:skupina změna pouze skupiny
vlastnik: změna vlastníka a skupiny, skupinou je tzv. login skupina uvedeného vlastníka, tj. skupina založená při vytvoření účtu uživatele