GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Umask v Linuxu

V operačních systémech Linux a Unix jsou všechny nové soubory vytvářeny s výchozí sadou oprávnění. umask utilita umožňuje zobrazit nebo nastavit masku vytváření režimu souborů, která určuje bity oprávnění pro nově vytvořené soubory nebo adresáře.

Používají ho příkazy mkdir, touch, tee a další, které vytvářejí nové soubory a adresáře.

Oprávnění pro Linux #

Než půjdeme dále, pojďme si krátce vysvětlit model oprávnění pro Linux.

V Linuxu je každý soubor spojen s vlastníkem a skupinou a jsou mu přiřazena přístupová práva pro tři různé třídy uživatelů:

  • Vlastník souboru.
  • Členové skupiny.
  • Všichni ostatní.

Pro každou třídu existují tři typy oprávnění:

  • Oprávnění ke čtení.
  • Povolení k zápisu.
  • Povolení ke spuštění.

Tento koncept vám umožňuje určit, kteří uživatelé mohou číst soubor, zapisovat do souboru nebo soubor spouštět.

Chcete-li zobrazit oprávnění k souboru, použijte ls příkaz:

ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr  8 20:51 dirname
|[-][-][-]    [------] [---]
| |  |  |        |       |       
| |  |  |        |       +-----------> Group
| |  |  |        +-------------------> Owner
| |  |  +----------------------------> Others Permissions
| |  +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type

První znak představuje typ souboru, kterým může být běžný soubor (- ), adresář (d ), symbolický odkaz (l ), nebo jakýkoli jiný speciální typ souboru.

Dalších devět znaků představuje oprávnění, tři sady po třech znacích. První sada zobrazuje oprávnění vlastníka, druhá oprávnění skupiny a poslední sada zobrazuje oprávnění všech ostatních.

Znak r s osmičkovou hodnotou 4 znamená čtení, w s osmičkovou hodnotou 2 pro zápis x s osmičkovou hodnotou 1 pro oprávnění ke spuštění a (- ) s osmičkovou hodnotou 0 bez oprávnění.

Existují také tři další speciální typy oprávnění k souborům:setuid , setgid, a Sticky Bit .

Ve výše uvedeném příkladu (rwxr-xr-x ) znamená, že vlastník má oprávnění ke čtení, zápisu a spouštění (rwx ), skupina a ostatní mají oprávnění ke čtení a spouštění.

Pokud zastupujeme oprávnění souboru pomocí číselného zápisu, dojdeme k číslu 755 :

  • Vlastník:rwx =4+2+1 = 7
  • Skupina:r-x =4+0+1 = 5
  • Jiné:r-x =4+0+1 = 5

Jsou-li oprávnění uvedena v číselném zápisu, mohou mít tři nebo čtyři osmičkové číslice (0-7). První číslice představuje speciální oprávnění, a pokud je vynechána, znamená to, že pro soubor nejsou nastavena žádná zvláštní oprávnění. V našem příkladu 755 je stejný jako 0755 . První číslice může být kombinací 4 pro setuid , 2 pro setgid a 1 pro Sticky Bit .

Oprávnění k souboru lze změnit pomocí chmod příkaz a vlastnictví pomocí chown příkaz.

Porozumění umask #

Ve výchozím nastavení jsou v systémech Linux výchozí oprávnění k vytváření 666 pro soubory, které udělují oprávnění ke čtení a zápisu uživateli, skupině a dalším, a na 777 pro adresáře, což znamená oprávnění ke čtení, zápisu a spouštění pro uživatele, skupiny a další. Linux neumožňuje vytvoření souboru s oprávněním ke spuštění.

Výchozí oprávnění k vytváření lze upravit pomocí umask utility.

umask ovlivňuje pouze aktuální prostředí shellu. Ve většině distribucí Linuxu je výchozí hodnota umask pro celý systém nastavena v pam_umask.so nebo /etc/profile soubor.

Pokud chcete zadat jinou hodnotu pro jednotlivé uživatele, upravte konfigurační soubory uživatelského prostředí, například ~/.bashrc nebo ~/.zshrc . Můžete také změnit aktuální relaci umask hodnotu spuštěním umask následovaná požadovanou hodnotou.

Chcete-li zobrazit aktuální hodnotu masky, jednoduše napište umask bez jakýchkoli argumentů:

umask

Výstup bude obsahovat

022

umask value obsahuje bity oprávnění, které NE nastavit na nově vytvořené soubory a adresáře.

Jak jsme již uvedli, výchozí oprávnění k vytváření souborů jsou 666 a pro adresáře 777 . Chcete-li vypočítat bity oprávnění pro nové soubory, odečtěte hodnotu umask od výchozí hodnoty.

Například pro výpočet umask 022 ovlivní nově vytvořené soubory a adresáře, použijte:

  • Soubory:666 - 022 = 644 . Vlastník může číst a upravovat soubory. Skupina a ostatní mohou soubory pouze číst.
  • Adresáře:777 - 022 = 755 .Vlastník může cd do adresáře a vypisovat, číst, upravovat, vytvářet nebo mazat soubory v adresáři. Skupina a ostatní mohou cd do adresáře a seznam a čtení souborů.

Hodnotu masky můžete také zobrazit v symbolickém zápisu pomocí -S možnost:

umask -S
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. Aby byly změny trvalé, nastavte nový umask hodnotu v globálním konfiguračním souboru jako /etc/profile soubor, který ovlivní všechny uživatele nebo v konfiguračních souborech uživatelského prostředí, jako je ~/.profile , ~/.bashrc nebo ~/.zshrc , což 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 má oprávnění ke čtení, zápisu a spouštění všech nově vytvořených souborů.

Ř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 hodnotu, 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í vašeho textového editoru:

sudo nano /etc/profile

a změňte nebo přidejte následující řádek na začátek souboru:

/etc/profile
umask 027

Aby se změny projevily, spusťte následující source 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í mkdir a touch :

mkdir newdirtouch newfile

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

drwxr-x--- 2 linuxize users 4096 Jul  4 18:14  newdir
-rw-r----- 1 linuxize users    0 Jul  4 18:14  newfile

Dalším způsobem, jak nastavit masku 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.

Pro více informací napište man umask ve vašem terminálu.

Pokud máte nějaké dotazy, zanechte prosím níže komentář.


Linux
  1. Co je Umask v Linuxu

  2. Linuxový příkaz mv

  3. Linux du command

  1. Linuxový ip příkaz

  2. Linux cd příkaz

  3. umask:příkaz nenalezen

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Příkaz Ping v Linuxu