Nastavování oprávnění
Z MiS
(Rozdíly mezi verzemi)
(→Zjištění nastavení práv: Rozepsán formát výpisu, dodány úkoly) |
(Používáme termín „oprávnění“ (permission) místo „právo“ (right).) |
||
| (Není zobrazeno 12 mezilehlých verzí od 1 uživatele.) | |||
| Řádka 1: | Řádka 1: | ||
| − | [[Category:VSE]] | + | [[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Linux]][[Category:Uživatelské účty]] |
| − | [[Category:Informatika]] | + | |
| − | [[Category:OSY]] | + | |
| − | == | + | == 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í): | |
| − | + | ||
| − | ; Příklad | + | {| class="wikitable" |
| + | |-- | ||
| + | | | ||
| + | !| r(ead) | ||
| + | !| w(rite) | ||
| + | !| x(eXecute) | ||
| + | |- | ||
| + | ! scope="col"| u(ser) | ||
| + | | ? | ||
| + | | ? | ||
| + | | ? | ||
| + | |- | ||
| + | ! scope="col"| g(roup) | ||
| + | | ? | ||
| + | | ? | ||
| + | | ? | ||
| + | |- | ||
| + | ! scope="col"| o(thers) | ||
| + | | ? | ||
| + | | ? | ||
| + | | ? | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | === Oprávnění nastavujeme === | ||
| + | * <tt>u</tt>... vlastníkovi souboru (neříkejte „uživateli“, nebylo by zřejmé, kterému) | ||
| + | * <tt>g</tt>... skupině, která soubor vlastní („vlastnické skupině“) | ||
| + | * <tt>o</tt>... všem ostatním uživatelům | ||
| + | |||
| + | === Význam jednotlivých oprávnění === | ||
| + | ; Pro soubory: | ||
| + | * <tt>r</tt>... zobrazit obsah souboru | ||
| + | * <tt>w</tt>... upravit obsah souboru | ||
| + | * <tt>x</tt>... spustit soubor | ||
| + | ; Pro složky/adresáře: | ||
| + | * <tt>r</tt>... zobrazit soubory v adresáři | ||
| + | * <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) | ||
| + | |||
| + | <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"> | ||
| + | ; Úkoly: | ||
| + | # Jaká oprávnění potřebujete mít pro provedení příkazů: | ||
| + | #* <code>ls directory</code> | ||
| + | #* <code>mv directory/file.txt file.txt</code> | ||
| + | #* <code>mv directory/file.txt directory/file-backup.txt</code> | ||
| + | #* <code>cp directory/file.txt file.txt</code> | ||
| + | #* <code>cat directory/file.txt</code> | ||
| + | #* <code>rm directory/file.txt</code> | ||
| + | </div> | ||
| + | |||
| + | == Výpis stávajících oprávnění == | ||
| + | ; Příkazem <code>ls -l</code> | ||
| + | |||
| + | Příklad výstupu: | ||
-rwxr--r-- 1 student skupina 1627 8. lis 10.52 soubor.txt | -rwxr--r-- 1 student skupina 1627 8. lis 10.52 soubor.txt | ||
| Řádka 18: | Řádka 68: | ||
** - ... běžný soubor | ** - ... běžný soubor | ||
** d ... adresář (složka) | ** d ... adresář (složka) | ||
| − | * | + | * 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 | ||
** pokud je oprávnění nastaveno, je tam odpovídající písmeno | ** pokud je oprávnění nastaveno, je tam odpovídající písmeno | ||
** pokud oprávnění není nastaveno, pak je uvedena pomlčka | ** pokud oprávnění není nastaveno, pak je uvedena pomlčka | ||
| − | * počet pevných linků (viz [[ | + | * počet pevných linků (viz [[Ext2: typy souborů|typy souborů]]) |
* username vlastníka | * username vlastníka | ||
* groupname skupiny, která soubor vlastní | * groupname skupiny, která soubor vlastní | ||
| Řádka 30: | Řádka 80: | ||
* název souboru | * název souboru | ||
| + | <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> | ||
| − | == | + | == Změna oprávnění (<code>chmod</code>) == |
| − | + | * Dva režimy: změna všech oprávnění naráz, nebo změna jednoho oprávnění. | |
| − | * Dva režimy: | + | ; Kompletní sada oprávnění naráz: |
| − | ** | + | * 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. |
| + | <div class="Priklad"> | ||
| + | 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 | ||
| + | </div> | ||
| + | Použití: | ||
| + | chmod 754 data.txt | ||
| + | ; Nastavení jednotlivých oprávnění: | ||
| + | * 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>+</code>... nastavit oprávnění nebo <code>-</code>... odebrat oprávnění, | ||
| + | ** <code>''co''</code>... <code>r</code>, <code>w</code>, <code>x</code>. | ||
| + | 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. |
| − | + | ; <code>chown</code> | |
| − | + | * 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 | |
| − | + | ; <code>chgrp</code> | |
| − | * | + | * změna vlastnické skupiny |
| + | * kdo může měnit vlastnickou skupinu: | ||
| + | *# vlastník souboru či složky může přiřazovat soubor jen skupinám, do kterých sám patří | ||
| + | *# administrátor (''root'') může přiřadit libovolnou skupinu. | ||
| + | chgrp ucetni data.txt | ||
== Opakování == | == Opakování == | ||
| − | * Zjistěte vlastníka souboru /etc/passwd. | + | * 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 | + | * Ří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
- u... vlastníkovi souboru (neříkejte „uživateli“, nebylo by zřejmé, kterému)
- g... skupině, která soubor vlastní („vlastnické skupině“)
- 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/adresáře
- r... zobrazit soubory v adresáři
- 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/adresář jako soubor, obsahující seznam názvů souborů a odkazů na jejich datové bloky
- Úkoly
- 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ů
- první znak: typ souboru
- - ... běžný soubor
- d ... adresář (složka)
- oprávnění 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 oprávnění 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á oprávnění) a nul (nemá oprávnění) 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 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íšeme:
chmod komu+/-co soubor-
komu...u,g,o, ev.ajako all pro všechny typy. -
+... nastavit oprávnění nebo-... odebrat oprávnění, -
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
- kdo může měnit vlastnickou skupinu:
- vlastník souboru či složky může přiřazovat soubor jen skupinám, do kterých sám patří
- administrátor (root) může přiřadit libovolnou skupinu.
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 oprávnění???
- Jak zjistíte, zda uživatel může soubor smazat?