Úvod
Při vytváření nového souboru nebo adresáře Linux použije výchozí sadu oprávnění. umask
umožňuje změnit tato výchozí oprávnění.
V tomto tutoriálu se dozvíte, co je umask, jak funguje a jak jej používat k nastavení oprávnění k souborům a adresářům pro jednotlivé uživatele nebo skupiny.
Předpoklady
- Systém založený na Linuxu (např. Ubuntu, CentOS, Debian)
- Uživatelský účet s právy sudo
- Přístup k příkazovému terminálu
Přehled maskování
Výraz umask odkazuje na dvě věci:
1. Linuxový umask
příkaz. umask
(uživatelský režim vytváření souborů) je příkaz Linuxu, který vám umožňuje nastavit výchozí oprávnění pro nově vytvořené soubory a složky.
2. Uživatelsky definovaná „maska“ oprávnění. Uživatel si může vybrat, jak omezit oprávnění pomocí masky oprávnění . Maska oprávnění spolupracuje s výchozími systémovými oprávněními a mění je. umask
příkaz se používá k použití této masky.
Jak Umask funguje?
umask
funguje tak, že ovlivňuje výchozí oprávnění souborů a složek v systému Linux.
V Linuxu existují tři kategorie oprávnění pro každý soubor a složku:
- Uživatel: Definuje oprávnění pro každého jednotlivého uživatele. Ve výchozím nastavení je jako vlastník nastaven uživatel, který vytváří soubor nebo složku.
- Skupina: Definuje oprávnění pro skupinu uživatelů, kteří sdílejí stejnou úroveň přístupu.
- Jiné: Definuje oprávnění pro každého, kdo není zahrnut do dvou předchozích kategorií.
Ke kontrole oprávnění pro domovskou složku použijte následující příkaz:
ls -l
Každý řádek výstupu začíná 10znakovým řetězcem s podrobnostmi o oprávněních. Tento řetězec rozděluje zvýrazněnou položku a skládá se z následujících prvků:
d
:Označuje typ souboru (adresář).rwx
:Označuje uživatelská oprávnění (čtení, zápis a spouštění).r-x
:Označuje oprávnění skupiny (čtení a spouštění).r-x
:Označuje další oprávnění (čtení a spouštění).
Syntaxe příkazu umask
Pomocí umask
příkaz bez dalších možností příkazu vrátí aktuální masku jako výstup:
umask
používá následující syntaxi:
umask [-p] [-S] [mask]
Kde:
[mask]
:Nová maska oprávnění, kterou používáte. Ve výchozím nastavení je maska prezentována jako číselná (osmičková) hodnota.[-S]
:Zobrazí aktuální masku jako symbolickou hodnotu.[-p]
:Zobrazí aktuální masku spolu sumask
příkaz, který umožňuje jeho kopírování a vkládání jako budoucí vstup.
Symbolické a číselné hodnoty umask
Jak jsme uvedli v příkladu výše, umask lze zobrazit jako číselnou (osmičkovou) nebo symbolickou hodnotu.
Maska může mít následující číselné a odpovídající symbolické hodnoty:
0 | --- | Žádné oprávnění |
1 | --x | Provést |
2 | -w- | Napište |
3 | -wx | Zapsat a spustit |
4 | r-- | Přečíst |
5 | r-x | Přečíst a spustit |
6 | rw- | Čtěte a pište |
7 | rwx | Čtení, zápis a spouštění |
Jak vypočítat hodnoty Umask
Linux používá následující výchozí hodnoty masky a oprávnění:
- Výchozí systémové hodnoty oprávnění jsou 777 (
rwxrwxrwx
) pro složky a 666 (rw-rw-rw-
) pro soubory. - Výchozí maska pro uživatele bez oprávnění root je 002, čímž se oprávnění složky mění na 775 (
rwxrwxr-x
) a oprávnění k souboru 664 (rw-rw-r--
). - Výchozí maska pro uživatele root us 022, měnící oprávnění složky na 755 (
rwxr-xr-x
) a oprávnění k souboru 644 (rw-r--r--
).
To nám ukazuje, že konečná hodnota oprávnění je výsledkem odečtení umask z výchozí hodnoty oprávnění (777 nebo 666).
Pokud například chcete změnit hodnotu oprávnění složky z 777 (čtení, zápis a spouštění pro všechny) na 444 (čtení pro všechny), musíte použít umask hodnota 333, od:
777 - 444 = 333
Jak nastavit a aktualizovat výchozí hodnotu Umask
Chcete-li použít nový umask
, použijte následující syntaxi hodnota:
umask [mask]
Kde:
[mask]
:Maska, kterou chcete použít, buď jako symbolickou nebo číselnou hodnotu.
Nastavení symbolické hodnoty umask
Nastavte nový umask hodnotu pomocí symbolických hodnot s následující syntaxí:
umask u=#,g=#,o=#
Kde:
u
:Označuje uživatelská oprávnění.g
:Označuje oprávnění skupiny.o
:Označuje další oprávnění.#
:Symbolická hodnota oprávnění, kterou chcete použít, jak je podrobně uvedeno v tabulce výše.
Poznámka: Při nastavování hodnoty symbolické masky nikdy nepoužívejte mezeru za čárkami.
Můžete použít i další operátory:
=
: Vytváří specifikovaná oprávnění k souboru a zakazuje blíže nespecifikovaná oprávnění.+
: Vytváří specifikovaná oprávnění, ale nemění blíže nespecifikovaná oprávnění.-
:Zakazuje specifikovaná oprávnění, ale nemění nespecifikovaná oprávnění.
Nastavení číselné hodnoty Umask
Jakmile spočítáte požadovaný umask číselnou hodnotu, nastavte ji pomocí:
umask [mask]
Kde:
[mask]
:Číselná hodnota masky, kterou chcete použít.
Rozdíl mezi umask a chmod
Příkaz chmod v Linuxu funguje podobně jako umask
příkaz. Také se používá k definování oprávnění pro soubory a složky.
Rozdíl mezi umask
a chmod
je to umask
změní výchozí oprávnění a tím i oprávnění pro všechny nově vytvořené soubory a složky, zatímco chmod
nastavuje oprávnění pro soubory a složky, které již existují.