Toto je starší verze dokumentu!
Obsah
Soubory a vlastnická práva
Oprávnění přístupu k souborům a jejich vlastnictví (dále jen práva) je výrazný bezpečnostní prvek, používaný v linuxových systémech. Otřepaná fráze z linuxového světa zní: „Všechno je soubor“, což úzce souvisí s open source licencí kterou, jak známo používají systémyGNU/Linux. Jiné, související dogma zní: „Každý soubor někomu patří“. Pojďme si to trochu vysvětlit.
Co všechno je soubor
Soubor může být fotografie z dovolené, ale i text, určující, jak jste připojeni na internet. Je tedy pochopitelné, práva k takto rozdílným souborům nebudou stejná. Nehledejte rozlišování pomocí přípon (jako třeba *.exe
pro spustitelné soubory),v linuxu je to jinak… Možná je to složitější, ale o to přesnější.
Zjištění práv a vlastnictví
Systémová utilita file pomůže zjistit o jaký druh souboru se jedná. Příkaz ls pak umí vypsat soubory obsažené v adresáři i různými doplňujícími informacemi.
Jako příklad si necháme vypsat svůj domovský adresář:
ls -lA
výsledkem bude obsáhlý výpis, plný podobných řádků:
drwxr-xr-x 2 kaja masters 4096 2008-12-06 13:43 Documents/
Ptáte se, co to znamená? Směsice písmen a pomlček na začátku řádku určuje:
typ | práva vlastníka | práva skupiny | práva ostatních |
---|---|---|---|
d | rwx | r-x | r-x |
kdy typ může být:
soubor | znakové zařízení | blokové zařízení | adresář | link |
---|---|---|---|---|
- | c | b | d | l |
a práva jsou:
čtení | zápis | spouštění |
---|---|---|
r | w | x |
nebo alternativně číselně
čtení | zápis | spouštění |
---|---|---|
r | w | x |
4 | 2 | 1 |
další sloupce výpisu určují vlastníka, skupinu, velikost souboru, datum vytvoření a název.
Změna práv a vlastnictví
Pro nastavení práv použijte příkaz chmod.
Pro změnu majitele, nebo skupiny použijte příkaz chown
Příkaz chmod s číselnou strukturou
Pro změnu práv a vlastnictví je ve většině případů provádět jako root. Nejsnažší změnou práv je použití oktálové (osmičkové) struktury: podle tabulky uložené výše je snadno pochopitelné, že každé písmeno určující práva má svojí číselnou alternativu. Z toho vychází oktálová syntaxe.
příklad:
chmod [MAJITEL, SKUPINA nebo OSTATNÍ] soubor
tedy vyjádřeno číselně:
chmod 751 soubor
znamená: MAJITEL 4+2+1
, SKUPINA 4+1
, OSTATNÍ UŽIVATELÉ
, NEČLENI SKUPINY 1
. Do písmenek si to teď jistě převedete sami.
Příkaz chmod se znakovou strukturou
Složitější ale s více možnostmi. V prvé řadě je třeba vypsat komu jsou práva měněna:
u | g | o | a |
---|---|---|---|
user | group | others | all |
vlastník | skupina | ostatní | všichni |
a jakým způsobem jsou měněna:
+ | - | = |
---|---|---|
přidat | odebrat | je rovno |
takže stejná práva jako v předchozím případě nastavíme pomocí:
chmod u=rwx,g=rx,o=x soubor
- chmod a adresáře
Podobné je to s právy u adresářů . chmod
lze použít i rekurzivně, tzn. že nastaví práva i v podřízených souborech a adresářích. Slouží k tomu přepínač -R
, tedy:
chmod -R 751 adresář
Příkaz chown
Opět jako root můžete změnit i vlastnictví souboru (potažmo adresáře). Syntaxe je jednoduchá:
chown uživatel:skupina soubor
pro adresáře ovšen rekruzivně, aby i obsah adresáře měl stejné majitele:
chown -R uživatel:skupina adresář
jako příklad použijeme změnu majitele výše uvedeného adresáře z výstupu ls -lA
chown -R root:root /home/kaja/Dokuments
a kájovo dokumenty nejsou kájovo.
Příkaz chgrpm
chgrp group1 file1
změní skupinu souboru file1
chown user1:group1 file1
změní uživatele a skupinu souboru file1