GNU/Linux >> Znalost Linux >  >> Linux

Co je umask v Linuxu?

UMASK v systémech Linux nebo Unix je známý jako User Mask nebo také jako User file creation Mask. Toto je základní oprávnění nebo výchozí oprávnění, když je v počítači se systémem Linux vytvořen nový soubor nebo složka.

V Linuxu se používá pro více příkazů, jako je mkdir, touch, tee a další příkazy, které vytvářejí soubory a adresáře. Zapojí se do každého kroku, když se vytvoří nový soubor nebo adresář.

Oprávnění k souboru:

Než se pustíme do hlubokého ponoru a pochopení umasku, pojďme si nejprve stručně porozumět oprávněním souborů.

Linux je známý svou bezpečností. Každý soubor nebo adresář v Linuxu má specifickou sadu oprávnění a vlastnictví. Podívejme se na třídu uživatelů níže.

Každý soubor v Linuxu bude mít přidruženy pod tři uživatelské třídy.

  1. Uživatel – Uživatel, který je vlastníkem souboru – ve výchozím nastavení označuje, kdo soubor vytvořil, pokud jej nezměníte.
  2. Skupina – Označuje, že lidé ve skupině budou mít přiřazena oprávnění k souboru.
  3. Ostatní – Toto omezí ostatní uživatele, kteří nejsou vlastníkem nebo nejsou v přiřazené skupině.

Pro každou uživatelskou třídu zmíněnou výše existují tři typy přístupu k souborům.

  1. r – oprávnění ke čtení – možnost číst obsah souboru
  2. w – oprávnění k zápisu – možnost měnit obsah souboru
  3. x – oprávnění ke spuštění – možnost spustit soubor jako program

Výše uvedený koncept vám říká, kdo smí číst obsah souboru, upravovat obsah souboru nebo spouštět program.

Oprávnění k prohlížení – symbolický režim:

Podívejme se níže na vlastnictví souboru. Informace můžete na svém počítači se systémem Linux načíst zadáním příkazu ls -l.

První znak na obrázku výše ukazuje typ souboru. V Linuxu mohou být různé typy souborů, jak je uvedeno níže.

-   

Označuje jednoduchý běžný soubor s různými příponami jako .txt, .json, .sh, .py, .rb atd.

d

Označuje adresář/složku

l

Označuje symbolický odkaz nebo symbolický odkaz nebo měkký odkaz

c

Označuje soubor znakového zařízení

b

Označuje soubor blokového zařízení

Následujících devět symbolů je rozděleno do tří částí, jak je uvedeno níže.

rwx

Vlastník souboru může číst obsah, upravovat obsah a spouštět soubor jako program

r-x

Členové ve skupině „uživatelé“ mohou číst obsah a spouštět soubor jako program, ale nemohou upravovat obsah souboru

r-x

Ten, kdo není vlastníkem, také není členem skupiny, tj. jiný , může také číst obsah souboru a spustit soubor jako program, ale nemůže upravovat obsah souboru

Oprávnění k prohlížení – číselný režim:

Existuje další způsob, jak vyjádřit oprávnění pomocí čísel, která se nazývají Numerický režim.

Podívejme se na níže uvedenou tabulku oprávnění pro numerické soubory.

  0

---

Žádné oprávnění

1

--x

Pouze oprávnění k provedení

2

-w-

Pouze oprávnění k zápisu

3

-wx

Oprávnění k zápisu a spouštění

4

r--

Oprávnění pouze ke čtení

5

r-x

Oprávnění ke čtení a spouštění

6

rw-

Oprávnění ke čtení a zápisu

7

rwx

Oprávnění ke čtení, zápisu a spouštění

Pokud odkážu na tuto tabulku číselných oprávnění a použiji ji na stejný adresář uvedený na obrázku výše, oprávnění bude vypadat níže.

rwx

4+2+1

7

r-x

4+0+1

5

r-x

4+0+1

5


Číselné oprávnění adresáře testdir je tedy 755. 

Porozumění UMASK:

Spuštěním níže uvedeného příkazu vytvoříme nový soubor a nový adresář.

$ touch testfile
$ mkdir testdir

Podívejme se na oprávnění testfile a testdir spuštěním příkazu ls -l.

$ ls -l

 
Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile
 

Všimli jste si oprávnění? Jsou jiní, že? To je způsobeno výchozí hodnotou umask, která je nastavena v počítači se systémem Linux.

Ve výchozím nastavení je na počítači Linux výchozí oprávnění k vytvoření souboru 666, které dává oprávnění ke čtení a zápisu vlastníkovi, skupině a dalším, a 777 pro adresář, což znamená oprávnění ke čtení, zápisu a spouštění vlastníkovi, skupině a ostatní.

Jak víme, adresáře nemohou být spustitelné. Proč tedy adresář potřebuje oprávnění ke spuštění? Oprávnění ke spuštění k adresáři je povolení přístupu k obsahu v adresáři. Pokud pomocí příkazu chmod změníme oprávnění adresáře na 666 a pokusíme se přejít do adresáře příkazem cd, zobrazí se chyba oprávnění odepřeno.

Ve většině distribucí Linuxu je výchozí hodnota pro celý systém nastavena v pam_umask.so nebo v souboru /etc/profile. Přidáním hodnoty do souboru ~/.bashrc do domovského adresáře uživatele můžeme vytvořit hodnotu umask specifickou pro uživatele.

Chcete-li zkontrolovat hodnotu umask, spusťte příkaz umask.

$umask

Výstup:

0022

Úplně první 0 z výše čtyř čísel můžeme prozatím ignorovat. Je součástí pokročilého oprávnění v Linuxu. Což může zabránit úpravě souboru, i když máte oprávnění k zápisu, nebo můžeme zabránit smazání souboru, i když jste uživatel root. V tomto blogu se zaměříme pouze na další tři čísla.

Chcete-li změnit aktuální hodnotu umask relace, proveďte níže uvedený příkaz následovaný požadovanou hodnotou.

$umask 0044

Jak soubory a adresáře získávají svá oprávnění:

Hodnota spojená s umask NENÍ oprávnění, které získáte pro své soubory a adresáře.

Existuje velmi jednoduchý výpočet. Jak jsme uvedli výše, výchozí hodnota pro soubor je 666 a pro adresář je to 777. Chcete-li vypočítat bity oprávnění pro nové soubory nebo adresáře, odečtěte hodnotu umask od výchozí hodnoty.

Spočítejme si například, jak ovlivní nové oprávnění k souboru nebo adresáři kvůli umask.

  • Soubory:666 - 022 =644. Podle oprávnění může vlastník soubor číst a spouštět. Skupiny a ostatní mohou číst soubor.
  • Adresář:777 - 022 =755. To znamená, že vlastník bude mít všechna oprávnění ke čtení, zápisu a cd do adresáře. Skupina a ostatní mohou číst a vypisovat obsah adresáře a cd do adresáře.

Hodnotu umask můžete také zobrazit v číselné podobě provedením níže uvedeného příkazu.

$umask

Výstup:

u=rwx,g=rx,o=rx

Na rozdíl od číselného zápisu obsahuje hodnota symbolického zápisu bity oprávnění, které budou nastaveny pro nově vytvořené soubory a adresáře.

Nastavení hodnoty masky:

Masku vytvoření souboru lze nastavit pomocí osmičkového nebo symbolického zápisu. Chcete-li, aby byly změny trvalé, nastavte novou hodnotu umask v globálním konfiguračním souboru, jako je soubor /etc/profile, který ovlivní všechny uživatele, nebo v konfiguračních souborech uživatelského prostředí, jako jsou ~/.profile, ~/.bashrc nebo ~/.zshrc, které ovlivní pouze uživatele. Uživatelské soubory mají přednost před globálními soubory.

Před provedením změn v umask hodnotu, ujistěte se, že nová hodnota nepředstavuje potenciální bezpečnostní riziko. Hodnoty méně omezující než 022 by měl být používán s velkou opatrností. Například umask 000 znamená, že kdokoli bude mít oprávnění ke čtení, zápisu a spouštění pro všechny nově vytvořené soubory.

Řekněme, že chceme nastavit přísnější oprávnění pro nově vytvořené soubory a adresáře, aby ostatní nemohli cd do adresářů a číst soubory. Požadovaná oprávnění jsou 750 pro adresáře a 640 pro soubory.

Pro výpočet umask value jednoduše odečtěte požadovaná oprávnění od výchozího:

Hodnota umask:777-750 = 027

Požadovaný umask hodnota uvedená v číselném zápisu je 027 .

Chcete-li trvale nastavit novou hodnotu v celém systému, otevřete /etc/profile soubor pomocí textového editoru a změňte nebo přidejte následující řádek na začátek souboru:

umask 0027

Aby se změny projevily, spusťte následující zdrojový příkaz nebo se odhlaste a přihlaste:

$source /etc/profile

Pro ověření nových nastavení vytvoříme jeden nový soubor a adresář pomocí níže uvedených příkazů.

$mkdir newtestdir
$touch newtestfile

Pokud zkontrolujete oprávnění pomocí příkazu ls, všimnete si, že nový soubor má 640 a nový adresář 750 oprávnění, jak jsme chtěli:

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile
 

Dalším způsobem nastavení masky vytvoření souboru je použití symbolického zápisu. Například umask u=rwx,g=rx,o= je stejný jako umask 027 .

Závěr:

V této příručce jsme vysvětlili oprávnění pro Linux a jak používat umask příkaz k nastavení bitů oprávnění pro nově vytvořené soubory nebo adresáře.

Další informace získáte zadáním příkazu níže ve svém terminálu.

$man umask

Linux
  1. Co je uživatel Linuxu?

  2. Co je Umask v Linuxu

  3. Linux – všechno je soubor?

  1. Co je soubor .so.2?

  2. Co je soubor .so?

  3. K čemu je Linux test – příkazový test?

  1. Co je číslo inodu v Linuxu?

  2. Co je NFS a jak jej nainstalovat na Linux

  3. Co jsou řídké soubory v Linuxu