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í.
|
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
|