Nastavování oprávnění

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Stránka Nastavování práv přemístěna na stránku Nastavování oprávnění: Permission je lépe překládat jako "oprávnění" než jako "práva".)
(Používáme termín „oprávnění“ (permission) místo „právo“ (right).)
 
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Linux]][[Category:Uživatelské účty]]
 
[[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Linux]][[Category:Uživatelské účty]]
  
== Práva pro přístup k souborům a složkám ==
+
== Oprávnění 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ší.
+
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 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):
+
Oprávnění k souboru si můžeme představit jako tabulku s devíti jednobitovými hodnotami (má oprávnění/nemá oprávnění):
  
 
{| class="wikitable"
 
{| class="wikitable"
Řádka 32: Řádka 32:
 
=== Oprávnění nastavujeme ===
 
=== Oprávnění nastavujeme ===
 
* <tt>u</tt>... vlastníkovi souboru (neříkejte „uživateli“, nebylo by zřejmé, kterému)
 
* <tt>u</tt>... vlastníkovi souboru (neříkejte „uživateli“, nebylo by zřejmé, kterému)
* <tt>g</tt>... skupině, která soubor vlastní  
+
* <tt>g</tt>... skupině, která soubor vlastní („vlastnické skupině“)
 
* <tt>o</tt>... všem ostatním uživatelům
 
* <tt>o</tt>... všem ostatním uživatelům
  
Řádka 40: Řádka 40:
 
* <tt>w</tt>... upravit obsah souboru
 
* <tt>w</tt>... upravit obsah souboru
 
* <tt>x</tt>... spustit soubor
 
* <tt>x</tt>... spustit soubor
; Pro složky:
+
; Pro složky/adresáře:
* <tt>r</tt>... zobrazit soubory ve složce
+
* <tt>r</tt>... zobrazit soubory v&nbsp;adresáři
 
* <tt>w</tt>... umožní přidávat, mazat, přejmenovávat soubory a složky
 
* <tt>w</tt>... umožní přidávat, mazat, přejmenovávat soubory a složky
 
* <tt>x</tt>... umožní přístup k souborům ve složce (v závislosti na oprávnění k danému souboru)
 
* <tt>x</tt>... umožní přístup k souborům ve složce (v závislosti na oprávnění k danému souboru)
  
<div class="Poznamka">Poznámka: představte si složku jako soubor, obsahující seznam názvů souborů a odkazů na jejich datové bloky</div>
+
<div class="Poznamka">Poznámka: představte si složku/adresář jako soubor, obsahující seznam názvů souborů a odkazů na jejich datové bloky</div>
  
 
<div class="Priklad">
 
<div class="Priklad">
 
; Úkoly:  
 
; Úkoly:  
# Jaká práva potřebujete mít pro provedení příkazů:
+
# Jaká oprávnění potřebujete mít pro provedení příkazů:
 
#* <code>ls directory</code>
 
#* <code>ls directory</code>
 
#* <code>mv directory/file.txt file.txt</code>
 
#* <code>mv directory/file.txt file.txt</code>
Řádka 58: Řádka 58:
 
</div>
 
</div>
  
== Zjištění nastavení práv ==
+
== Výpis stávajících oprávnění ==
 
; Příkazem <code>ls -l</code>
 
; Příkazem <code>ls -l</code>
  
Řádka 68: Řádka 68:
 
** - ... běžný soubor
 
** - ... běžný soubor
 
** d ... adresář (složka)
 
** d ... adresář (složka)
* práva k souboru
+
* oprávnění k souboru
 
** nejprve pro vlastníka, pak skupiny, pak pro ostatní
 
** nejprve pro vlastníka, pak skupiny, pak pro ostatní
 
** vždy v pořadí rwx
 
** vždy v pořadí rwx
Řádka 92: Řádka 92:
  
 
== Změna oprávnění (<code>chmod</code>) ==
 
== Změna oprávnění (<code>chmod</code>) ==
* Dva režimy: změna všech práv naráz, nebo změna jednoho oprávnění.
+
* Dva režimy: změna všech oprávnění naráz, nebo změna jednoho oprávnění.
 
; Kompletní sada oprávnění naráz:
 
; 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í: <tt>u(rwx) g(rwx) o(rwx)</tt>.
+
* Zapíšeme oprávnění jako posloupnost jedniček (má oprávnění) a nul (nemá oprávnění) v pořadí: <tt>u(rwx) g(rwx) o(rwx)</tt>.
 
* Trojice přečteme jako dvojkový zápis desítkových čísel.
 
* Trojice přečteme jako dvojkový zápis desítkových čísel.
 
<div class="Priklad">
 
<div class="Priklad">
Představme si, že chceme zapsat, že vlastník má všechna práva, skupina nemůže zapisovat a ostatní mohou jen číst:
+
Představme si, že chceme zapsat, že vlastník má všechna oprávnění, skupina nemůže zapisovat a ostatní mohou jen číst:
 
   u  g  o
 
   u  g  o
 
  rwx rwx rwx
 
  rwx rwx rwx
Řádka 108: Řádka 108:
 
* Píšeme: <code>chmod ''komu''+/-''co'' ''soubor''</code>  
 
* Píšeme: <code>chmod ''komu''+/-''co'' ''soubor''</code>  
 
** <code>''komu''</code>... <code>u</code>, <code>g</code>, <code>o</code>, ev. <code>a</code> jako ''all'' pro všechny typy.
 
** <code>''komu''</code>... <code>u</code>, <code>g</code>, <code>o</code>, ev. <code>a</code> jako ''all'' pro všechny typy.
** <code>+</code>... nastavit právo nebo <code>-</code>... odebrat právo,
+
** <code>+</code>... nastavit oprávnění nebo <code>-</code>... odebrat oprávnění,
 
** <code>''co''</code>... <code>r</code>, <code>w</code>, <code>x</code>.
 
** <code>''co''</code>... <code>r</code>, <code>w</code>, <code>x</code>.
 
Příklad:
 
Příklad:
Řádka 130: Řádka 130:
 
== Opakování ==
 
== Opakování ==
 
* Zjistěte vlastníka souboru <tt>/etc/passwd</tt>.
 
* Zjistěte vlastníka souboru <tt>/etc/passwd</tt>.
* Ří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???
+
* Ří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 oprávnění???
 
* Jak zjistíte, zda uživatel může soubor smazat?
 
* Jak zjistíte, zda uživatel může soubor smazat?
  

Aktuální verze z 14. 4. 2021, 07:02


Obsah

Oprávnění 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 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á oprávnění/nemá oprávnění):

r(ead) w(rite) x(eXecute)
u(ser)  ?  ?  ?
g(roup)  ?  ?  ?
o(thers)  ?  ?  ?

Oprávnění nastavujeme

Význam jednotlivých oprávnění

Pro soubory
Pro složky/adresáře
Poznámka: představte si složku/adresář jako soubor, obsahující seznam názvů souborů a odkazů na jejich datové bloky
Úkoly
  1. Jaká oprávnění 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

Výpis stávajících oprávnění

Příkazem ls -l

Příklad výstupu:

-rwxr--r-- 1 student skupina   1627  8. lis 10.52 soubor.txt
Význam znaků
Ú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 franta zapisovat do souboru soubor.txt?
  • Co má případně franta dělat, aby do souboru mohl zapsat?
  • Může uživatel franta obsah souboru číst?
  • Co má případně franta dělat, aby obsah souboru mohl číst?

Změna oprávnění (chmod)

Kompletní sada oprávnění naráz

Představme si, že chceme zapsat, že vlastník má všechna oprávnění, 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říklad:

chmod u+r data.txt

Změna vlastníka a skupiny

Při vytvoření souboru
chown
sudo chown xmarek data.txt
chgrp
chgrp ucetni data.txt

Opakování

Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje