Nastavování oprávnění
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				|  (Oprava vzhledu, kdo co může provádět?) |  (Upraven příklad u zjišťování oprávnění - dodal jsem, z čeho vycházet a další body.) | ||
| Řádka 82: | Řádka 82: | ||
| <div class="Priklad"> | <div class="Priklad"> | ||
| ; Úkol | ; Úkol | ||
| − | * Může uživatel  | + | * Vypsali jste si oprávnění k souboru <tt>soubor.txt</tt>: | 
| − | * Co má  | + |  ''$'' ls -l | 
| + |  -rwxr----- 1 student skupina   1627  8. lis 10.52 soubor.txt | ||
| + | * Může uživatel <code>franta</code> zapisovat do souboru <tt>soubor.txt</tt>? | ||
| + | * Co má případně <code>franta</code> dělat, aby do souboru mohl zapsat? | ||
| + | * Může uživatel <code>franta</code> obsah souboru číst? | ||
| + | * Co má případně <code>franta</code> dělat, aby obsah souboru mohl číst? | ||
| </div> | </div> | ||
Verze z 14. 2. 2020, 07:16
| Obsah | 
Práva pro přístup k souborům a složkám
V tomto článku se zabýváme klasickým systémem nastavení oprávění tak, jak fungoval v Unixu a jak funguje dodnes v mnoha distribucích GNU/Linuxu. Existují ale samozřejmě rozšíření jako SELinux, AppArmor a další.
Oprávnění k souboru si můžeme představit jako tabulku s devíti jednobitovými hodnotami (má právo/nemá právo):
| r(ead) | w(rite) | x(eXecute) | |
|---|---|---|---|
| u(ser) | ? | ? | ? | 
| g(roup) | ? | ? | ? | 
| o(thers) | ? | ? | ? | 
Oprávnění nastavujeme
- u... vlastníkovi souboru (neříkejte „uživateli“, nebylo by zřejmé, kterému)
- g... skupině, která soubor vlastní
- o... všem ostatním uživatelům
Význam jednotlivých oprávnění
- Pro soubory
- r... zobrazit obsah souboru
- w... upravit obsah souboru
- x... spustit soubor
- Pro složky
- r... zobrazit soubory ve složce
- w... umožní přidávat, mazat, přejmenovávat soubory a složky
- x... umožní přístup k souborům ve složce (v závislosti na oprávnění k danému souboru)
Poznámka: představte si složku jako soubor, obsahující seznam názvů souborů a odkazů na jejich datové bloky
- Úkoly
-  Jaká práva potřebujete mít pro provedení příkazů:
-  ls directory
-  mv directory/file.txt file.txt
-  mv directory/file.txt directory/file-backup.txt
-  cp directory/file.txt file.txt
-  cat directory/file.txt
-  rm directory/file.txt
 
-  
Zjištění nastavení práv
-  Příkazem ls -l
Příklad výstupu:
-rwxr--r-- 1 student skupina 1627 8. lis 10.52 soubor.txt
- Význam znaků
-  první znak: typ souboru
- - ... běžný soubor
- d ... adresář (složka)
 
-  práva k souboru
- nejprve pro vlastníka, pak skupiny, pak pro ostatní
- vždy v pořadí rwx
- pokud je oprávnění nastaveno, je tam odpovídající písmeno
- pokud oprávnění není nastaveno, pak je uvedena pomlčka
 
- počet pevných linků (viz typy souborů)
- username vlastníka
- groupname skupiny, která soubor vlastní
- velikost souboru
- datum poslední změny
- název souboru
- Úkol
- Vypsali jste si oprávnění k souboru soubor.txt:
$ ls -l -rwxr----- 1 student skupina 1627 8. lis 10.52 soubor.txt
-  Může uživatel frantazapisovat do souboru soubor.txt?
-  Co má případně frantadělat, aby do souboru mohl zapsat?
-  Může uživatel frantaobsah souboru číst?
-  Co má případně frantadělat, aby obsah souboru mohl číst?
  Změna oprávnění (chmod) 
- Dva režimy: změna všech práv naráz, nebo změna jednoho oprávnění.
- Kompletní sada oprávnění naráz
- Zapíšeme oprávnění jako posloupnost jedniček (má právo) a nul (nemá právé) v pořadí: u(rwx) g(rwx) o(rwx).
- Trojice přečteme jako dvojkový zápis desítkových čísel.
Představme si, že chceme zapsat, že vlastník má všechna práva, skupina nemůže zapisovat a ostatní mohou jen číst:
u g o rwx rwx rwx 111 101 100 7 5 4
Použití:
chmod 754 data.txt
- Nastavení jednotlivých oprávnění
-  Píšeme: chmod komu+/-co soubor-  komu...u,g,o, ev.ajako all pro všechny typy.
-  +... nastavit právo nebo-... odebrat právo,
-  co...r,w,x.
 
-  
Příklad:
chmod u+r data.txt
Změna vlastníka a skupiny
- Při vytvoření souboru
- Vlastníkem souboru se při vytvoření souboru stane ten, kdo soubor vytvoří.
- Nový soubor vlastní skupina, která je primární skupinou vlastníka.
-  chown
- změna vlastníka
- obvykle může provádět pouze administrátor (root)(toto chování lze změnit)
sudo chown xmarek data.txt
-  chgrp
- změna vlastnické skupiny
- obvykle může provádět vlastník a administrátor (root), vlastník může přiřazovat soubor jen skupině, do které patří.
chgrp ucetni data.txt
Opakování
- Zjistěte vlastníka souboru /etc/passwd.
- Říká se, že administrátor počítače může v klasických desktopových distribucích všechno. Není to v rozporu s výše uvedeným nastavením práv???
- Jak zjistíte, zda uživatel může soubor smazat?
