Uživatelské nástroje

Nástroje pro tento web


system:prikazovy_radek:vlastnictvi

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ář:

Konzole

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 změnu práv a vlastnictví může ve většině případů provádět jako root nebo vlastník souboru.

Příkaz chmod s číselnou strukturou

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:

Konzole

chmod [MAJITEL, SKUPINA nebo OSTATNÍ] soubor

tedy vyjádřeno číselně:

Konzole

chmod 751 soubor

znamená: MAJITEL 4+2+1, SKUPINA 4+1, OSTATNÍ UŽIVATELÉ, NEČLENI SKUPINY 1.

Číselná hodnota:Popis práva:
0 - žádná práva
1 - právo spouštění
2 - právo zápisu
3 - právo spouštění a zápisu
4 - právo právo čtení
5 - právo spouštění a čtení
6 - právo čtení a zápisu
7 - právo spouštění, zápisu a čtení

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í:

Konzole

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:

Konzole

chmod -R 751 adresář

Další příklad:

Konzole

chmod ug=rwx,o=r obrazek.jpg

Výhoda tohoto zápisu je právě v operacích, které lze tímto způsobem s právy dělat. Viz. dále.

Jak přesně nastavit práva

Následující příklad nastaví pro soubor obrazek.jpg práva tak, že uživatel může číst, zapisovat, spouštět; skupina může jen čtení; a ostatní nemohou soubor obrazek.jpg ani číst:

Konzole

chmod 740 obrazek.jpg

Jiný způsob by byl :

Konzole

chmod u=rwx,g=r,o= obrazek.jpg

Jak přidávat práva

Např. potřebuji jen přidat právo zápisu pro skupinu do souboru obrazek.jpg.

Konzole

chmod g+w obrazek.jpg

Jiná práva zůstanou tak jak byly. Tedy u souboru obrazek.jpg se nezmění žádná práva ani pro majitele souboru obrazek.jpg, ani práva pro ostatní uživatele. Stejně tak se nezmění u skupiny práva čtení a spouštění. Toho nelze při tzv. osmičkovém zápisu dosáhnout.

Jak kopírovat práva.

Nebo zajímavá možnost kopírovat práva. Např. nastavit taková práva jaká má uživatel, aby měli stejná práva i ostatní.

Konzole

chmod o=u obrazek.jpg

Jak kopírovat práva ze souboru.

Nebo možnost kopírovat práva z jiného souboru. Např. nastavit práva pro soubor obrazek.jpg podle toho, jaká práva má soubor popisobrazku.txt.

Konzole

chmod -reference=popisobrazku.txt obrazek.jpg

Speciální atributy souborů

(použijte + pro nastavení a - pro odebrání práv)

Příkaz chown

Opět jako root můžete změnit i vlastnictví souboru (potažmo adresáře). Syntaxe je jednoduchá:

Konzole

chown uživatel:skupina soubor

pro adresáře ovšen rekruzivně, aby i obsah adresáře měl stejné majitele:

Konzole

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

Konzole

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

Příkaz chattr

Příkaz:Popis příkazu:
chattr +a file1 - nastaví souboru zápis pouze pro přidávání
chattr +c file1 - dovolí, aby byl soubor automaticky komprimován / dekomprimován jádrem systému
chattr +d file1 - nastaví soubor pro vynechání ze zálohování pomocí programu Dump
chattr +i file1 - nastaví soubor jako neměnný (nemůže být odstraněn, upraven, přejmenován a ani na něj není možné vytvořit odkaz)
chattr +s file1 - nastaví souboru bezpečné mazání
chattr +S file1 - nastaví zapsání změn souboru v synchronním módu pomocí sync
chattr +u file1 - nastaví souboru možnost být obnoven

Příkaz lsattr

Příkaz:Popis příkazu:
lsattr - zobrazí speciální atributy

Odkazy

system/prikazovy_radek/vlastnictvi.txt · Poslední úprava: 2014/10/25 13:14 (upraveno mimo DokuWiki)