====== Práva souborů ======
{{:identity.png}} Důležitým bezpečnostním mechanismem určeným k řízení přístupu k datům jsou **oprávnění přístupu k souborům**. Všichni uživatelé systému, kromě správce, jimi mohou být omezeni. Slouží například k omezení přístupu běžného uživatele k systémovým konfiguračním souborům.
Vše, co uživatel vytvoří, se stává jeho vlastnictvím a tomuto vlastnictví může přidělovat oprávnění. Každý soubor má nejen vlastníka, ale je přiřazen i skupině. S právy můžeme manipulovat jak v grafickém režimu, tak i v terminálu. Klikací grafický režim je intuitivnější a snazší, ale obtížně se s ním dělají rozsáhlejší změny.
====== Grafický režim ======
{{:nautilus-icon.png}} Pro změnu oprávnění souborů slouží standardní správce souborů Nautilus. Čtěte [[:Nautilus#prava|Nautilus]].
{{ :programy/práce_s_daty/nautilus-opravneni.png }}
====== Textový režim ======
{{:terminal.png}} Pro práci v textovém režimu využijte [[:Terminál]].
===== Zjištění práv souborů =====
Práva souborů můžeme zjistit příkazem **ls -l**, případně **ls -laF**
(pozn. **l** (malé L) = zobrazit detaily, **a** = zobrazit skryté soubory, **F** = za každý adresář přidá lomítko).
...
-rw-r--r-- 1 root root 2657 2007-04-15 13:49 adduser.conf
-rw-r--r-- 1 root root 46 2007-08-07 18:10 adjtime
-rw-r--r-- 1 root root 49 2007-08-06 23:43 aliases
drwxr-xr-x 2 root root 4096 2007-08-07 20:50 alternatives/
-rw-r--r-- 1 root root 395 2007-03-05 07:38 anacrontab
drwxr-xr-x 7 root root 4096 2007-04-15 13:55 apm/
drwxr-xr-x 4 root root 4096 2007-08-07 17:26 apt/
-rw-r----- 1 root daemon 144 2007-02-20 14:41 at.deny
...
Hned v prvním sloupci výpisu vidíme ona přístupová práva jednotlivých souborů, např:
drwxr-xr-x
Tento zápis si pro větší přehlednost rozdělíme do čtyř sloupců:
|**typ**|**práva vlastníka**|**práva skupiny**|**práva ostatních**|
|d|rwx|r-x|r-x|
První sloupec je jednoznakový a určuje, o jaký typ souboru se jedná.
* **-** = soubor\
* **c** = znaková zařízení (tiskárna...)
* **b** = bloková zařízení (disky...)
* **d** = adresář
* **l** = link
Další tři sloupce již označují skupiny, kterým můžeme práva přiřazovat. Práva vlastníka určují, co se souborem může dělat vlastník souboru. Práva skupiny udávají, co se souborem můžou provádět ostatní členové skupiny, které soubor náleží. A nakonec jsou práva ostatních, kteří nepatří do skupiny, jíž soubor přísluší.
===== Význam r, w, x =====
|**práva**|**význam**|**pro soubor**|**pro adresář**|
|r|Read|číst soubor|vypsat obsah adresáře|
|w|Write|zapisovat do souboru|vytvářet nebo mazat soubory či adresáře|
|x|eXecute|spouštět soubor|procházet adresářem|
{{:example.png}} **Příklad:**
-rwxr-xrw-
**Podle tohoto zápisu poznáme, že:**
* se jedná o soubor\
* vlastník má právo soubor číst, zapisovat a spouštět
* skupina má právo soubor číst a spouštět
* ostatní mají právo soubor číst a psát
===== Změna práv souborů =====
K tomuto účelu slouží příkaz **chmod**, který má dvě varianty zápisu atributů.
==== První způsob ====
Vybereme komu a jaká práva přiřadíme.
chmod o+rx jmeno_souboru
Prvním znakem určíme, čí práva budeme měnit:
|u|user|vlastník|
|g|group|skupina|
|o|others|ostatní|
|a|all|všichni|
Následně použijeme znaménko:
|+|přidání práva|
|-|odebrání práva|
|=|kompletní změna práv na nastavenou hodnotu|
{{:example.png}} **Příklad:**
chmod a=rwx file.txt
Pokud si nyní dáme vypsat práva souboru, jemuž jsme je měnili, měli bychom dostat toto:
-rwxrwxrwx file.txt
==== Druhý způsob ====
Číselná soustava
chmod 777 file.txt
Tento způsob se možná někomu bude zdát složitejší, zvláště pokud nemá zkušenosti s číselnými soustavami, ovšem princip je jednoduchý. Každé právo r, w nebo x představuje určitou hodnotu:
|**právo**|**hodnota**|
|r|4|
|w|2|
|x|1|
Práva každé kategorie (vlastník, skupina, ostatní) jsou reprezentovány číslem, které tvoří součet hodnot jednotlivých práv.
Pokud bychom tedy chtěli nastavit práva rwxrwxrwx, postupovali bychom takto:
|rwx|rwx|rwx|
|421|421|421|
|7|7|7|
{{:example.png}} **Příklad:**
Hodnota 546 by odpovídala právům:
|5|4|6|
|4+1|4|4+2|
|r-x|r--|rw-|
==== Změna oprávnění k souborům ve složce ====
Pro aplikaci oprávnění na soubory obsažené ve složce, které oprávnění měníme, použijeme modifikátor příkazu -R.
{{:example.png}} **Příklad:**
chmod 777 -R Nějaká\ složka