Wat is Umask en hoe gebruikt u het effectief

Leestijd: 5 minuten

Wat is Umask?

Umask, of de gebruikersmodus voor het aanmaken van bestanden, is een Linux-commando dat wordt gebruikt om de standaardpermissiesets voor nieuw aangemaakte mappen en bestanden toe te wijzen. De term masker verwijst naar de groep van de toestemming bits, die elk bepaalt hoe de bijbehorende toestemming wordt ingesteld voor nieuw aangemaakte bestanden. De bits in het masker kunnen worden veranderd door het commando umask op te roepen.

Wanneer we de term Umask gebruiken, verwijzen we naar een van de volgende twee betekenissen:

  • Het masker voor de aanmaakmodus van gebruikersbestanden, dat wordt gebruikt om de standaardmachtigingen voor nieuw aangemaakte bestanden en directory’s in te stellen
  • Het commando “umask” dat wordt gebruikt om de umask-waarde in te stellen

Zoals u waarschijnlijk al weet, hebben alle op Unix gebaseerde besturingssystemen een reeks eigenschappen die worden gebruikt om te bepalen wie specifieke bestanden of mappen mag lezen, schrijven of uitvoeren. Er zijn drie categorieën, “permissieklassen” genaamd, waarop deze permissies van toepassing zijn, en ze worden als volgt aangegeven.

  • Gebruiker: De gebruiker is standaard de eigenaar of maker van een bestand of map. Het eigendom van het nieuwe bestand ligt standaard bij deze gebruiker.
  • Groep: Een Groep is een verzameling gebruikers die hetzelfde toegangsniveau of dezelfde machtigingen voor een bestand of map delen.
  • Anderen: De groep Overige wordt gedefinieerd als elke gebruiker die niet in de vorige twee categorieën is opgenomen. Deze gebruikers hebben geen bestand of map gemaakt en behoren ook niet tot een specifieke gebruikersgroep. Deze groep omvat iedereen die niet geïdentificeerd is als een gebruiker of als deel uitmakend van een gebruikersgroep. Wanneer we het machtigingsniveau van een bestand of map instellen op Ander, geeft dit iedereen die toegang heeft tot het bestand of de map toegang.

Dus, wat gebeurt er wanneer een gebruiker nieuwe bestanden en mappen aanmaakt? Het systeem kent automatisch de volgende toestemmingen aan een bestand toe als het touch-commando wordt gebruikt.

Als we een directory aanmaken, kent het de volgende toestemmingsset eraan toe,

De Umask-commando-syntax

De volledige manpage-invoer voor umask is als volgt.

umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.

Om de huidige umask-waarde te bekijken, gebruiken we het umask-commando. Het uitvoeren van het commando umask alleen geeft de standaard permissies die worden toegewezen wanneer een bestand of map wordt gemaakt.

# umask0022#

Om deze waarden te wijzigen, gebruiken we het volgende commando.

# umask #### umask 022

De ###-symbolen in het eerste commando worden gebruikt in plaats van een echt octaal getal.

Hieronder kunnen we de vertaalde waarden van het octaal zien en hoe ze met elkaar in verband staan.

Getal Permissie
4 lezen
2 schrijven
1 uitvoeren
Lezen Schrijven Uitvoeren Totale Waarde Symbolisch Equivalent:
0 0 0 0
0 0 1 1 x
0 2 0 2 w
0 2 1 3 wx
4 0 0 4 r
4 0 1 5 rx
4 2 0 6 rw
4 2 1 7 rwx

Dus, wanneer we een ls commando uitvoeren, worden de octale of symbolische permissiewaarden aan het begin van de uitvoer getoond.

# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt

De ingestelde permissies voor de testdirectory is 755 of ‘rwx’ ‘r-x’ ‘r-x’.
De ingestelde permissies voor het test.txt bestand is 644 of ‘rw -‘ ‘r – -‘ ‘r – -‘.
Een streepje betekent een 0 waarde.

Symbolische koppen

--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute

Numerieke koppen

Hoe Umask werkt

Het commando umask maskeert toestemmingsniveaus door ze te kwalificeren met een bepaalde waarde. Om verder uit te leggen hoe de umask waarde wordt toegepast, zullen we dit illustreren met een voorbeeld. Stel dat we de standaard permissies voor alle nieuwe bestanden of mappen willen instellen op 644 en 755. We zouden dan het volgende commando gebruiken.

# umask 022

Het nummer “2” (schrijf permissie) zal worden “gefilterd” uit de standaard permissies van het systeem van 666 en 777 (vandaar de naam “mask.”) Vanaf nu zal het systeem de standaard permissies van 644 en 755 toewijzen aan nieuwe bestanden en mappen. Om de bits van de rechten voor een nieuw bestand of een nieuwe map te berekenen, trekken we gewoon de umask-waarde af van de standaardwaarde, en wel als volgt

  • 666 – 022 = 644
  • 777 – 022 = 755

Octuele waarde : Toestemming

  • 0 : lezen, schrijven en uitvoeren
  • 1 : lezen en schrijven
  • 2 : lezen en uitvoeren
  • 3 : alleen lezen
  • 4 : schrijven en uitvoeren
  • 5 : alleen schrijven
  • 6 : alleen uitvoeren
  • 7 : geen permissies

We kunnen bovenstaande informatie gebruiken om onze bestandspermissies te berekenen. Bijvoorbeeld, als onze umask is ingesteld op 077, kan de toestemming als volgt worden berekend:

Bit Targeted at File permission
0 Owner read, schrijven en uitvoeren
7 Groep Geen permissies
7 Wereld Geen permissies

0 : lezen, schrijven en uitvoeren
7 : geen rechten
7 : geen rechten

Een umask van 000 maakt nieuw aangemaakte mappen leesbaar, schrijfbaar en uitvoerbaar door iedereen (de rechten zijn dan 777).

Umask-configuratielocatie

In de meeste Linux-distributies kan de umask-waarde op de volgende locaties worden gevonden en geconfigureerd:

  • /etc/profile – hier worden systeembrede standaardvariabelen opgeslagen
  • /etc/bash.bashrc – hier worden standaard shell-configuratiebestanden opgeslagen

Umask-symbolen

Zoals in de umask man-pagina hierboven is opgemerkt, kunnen we specifieke symbolen gebruiken om toestemmingswaarden op te geven die we willen instellen. Om de huidige ingestelde umask waarde in symbolen te bekijken, gebruiken we het volgende commando:

umask -S

Om het te veranderen, kunnen we het commando gebruiken waarin de letters “u,” “g,” en “o” de gebruiker, groep, en other of wereld vertegenwoordigen, zoals hieronder getoond.

umask u=$, g=$, o=$

Wanneer we op deze manier permissies instellen, vullen we elke “$” plaatshouder aan met het (de) gewenste permissie symbool(s). Het gelijke “=” teken is niet de enige operator die we tot onze beschikking hebben bij het instellen van umask met symbolische waarden. We kunnen ook plus “+” en min “-” operatoren gebruiken.

  • Het = symbool staat toe dat permissies worden ingeschakeld, waarbij niet gespecificeerde permissies worden verboden
  • Het + symbool staat toe dat permissies worden ingeschakeld, waarbij ongespecificeerde rechten worden genegeerd
  • Het – symbool verbiedt het inschakelen van rechten, waarbij ongespecificeerde rechten worden genegeerd
Note:
Het gebruik van spaties na komma’s zal niet werken, en bash zal de “invalid symbolic mode operator” foutmelding geven.

Er is een extra symbool dat kan worden gebruikt wanneer we dezelfde permissie voor alle permissie-klassen tegelijk willen instellen (gebruiker, groep, en overig), en dat is:

umask a=

Conclusie

Nu we de functie van het aanmaakmasker voor de gebruikersbestandsmodus beter begrijpen, kunnen we er goed gebruik van maken. Niet alleen bespaart het ons kostbare tijd en verbetert het de beveiliging, maar het biedt ons ook betere mogelijkheden voor het beheer van rechten.

Get Started Today!

Heeft u nog steeds vragen over het gebruik van umask? Bel ons op 800.580.4985, of open een chat of ticket met ons om vandaag nog te spreken met een van onze deskundige Solutions Team of een ervaren Hosting Advisors!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *