Vad är umask?

umask (user file-creation mode mask) är en Linux- och Unix-inställning som styr standardbehörigheterna för nyligen skapade filer och kataloger. Istället för att ställa in behörigheter direkt definierar umask vilka behörighetsbitar som ska tas bort från systemets standardvärden när en ny fil eller katalog skapas.

Systemet börjar med en basbehörighet på 666 (läs- och skrivbehörighet för alla) för filer och 777 (läs-, skriv- och körningsbehörighet för alla) för kataloger. Umask subtraheras sedan bitvis från dessa standardvärden med hjälp av en logisk AND-NOT-operation, vilket ger de slutliga behörigheterna. Till exempel, med en umask på 022, får nya filer 644 och nya kataloger 755.

Varje umask-siffra motsvarar en behörighetsklass: den första siffran påverkar ägaren, den andra gruppen och den tredje övriga. En siffra på 0 betyder att inga behörigheter maskeras ut, medan 7 tar bort alla behörigheter för den klassen.

Verktygsbeskrivning

Linux umask-kalkulatorn konverterar ett umask-värde och en basbehörighet till de resulterande effektiva behörigheterna i både oktal och symbolisk notation. Den genererar också det exakta umask-skalkommandot, vilket hjälper systemadministratörer, utvecklare och DevOps-ingenjörer att förhandsgranska resultatet av en umask innan den tillämpas på ett skal, skript eller systemkonfiguration.

Exempel

Umask Bas Resulterande oktal Symbolisk
022 666 644 rw-r--r--
022 777 755 rwxr-xr-x
077 666 600 rw-------
027 777 750 rwxr-x---
002 666 664 rw-rw-r--

Funktioner

  • Beräknar resulterande oktal och symboliska behörigheter från valfri umask
  • Stöder både 3-siffrig och 4-siffrig (med ledande sticky/setuid-bit) umask-värden
  • Vanliga umask-förinställningar (022, 027, 077, 002, 007, 000)
  • Basbehörighetsförinställningar för filer (666) och kataloger (777)
  • Genererar det färdiga umask-skalkommandot

Användningsfall

  • Serverhärdning: Förhandsgranska en strängare umask som 077 innan du lägger till den i /etc/profile eller en användares skalskonfiguration för att säkerställa att nya filer är privata.
  • Delade utvecklingsmiljöer: Verifiera att 002 eller 007 producerar gruppskrivbara filer för samarbetsprojektkataloger.
  • Distributionsskript: Bekräfta att umask som används i CI/CD-pipelines eller behållaringångspunkter producerar förväntade filbehörigheter för programloggar och uppladdade tillgångar.

Hur det fungerar

Den slutliga behörigheten beräknas för varje klass (ägare, grupp, övriga) med formeln:

final = bas AND (NOT umask)

Varje oktal siffra bearbetas oberoende. För en umask-siffra på 2 (binär 010) och en bassiffra på 6 (binär 110), är resultatet 110 AND NOT 010 = 100, vilket motsvarar 4 (skrivskyddad). Den ledande siffran i en 4-siffrig umask styr specialbitar (setuid, setgid, sticky) och ignoreras i standardbehörighetsberäkningen.

Tips

  • Använd 666 som bas för att se behörigheter för nya filer och 777 för nya kataloger.
  • En umask på 000 betyder att inga behörigheter tas bort — användbar endast i strikt kontrollerade, isolerade miljöer.
  • För att göra umask permanent lägger du till det genererade kommandot i ~/.bashrc, ~/.profile eller /etc/profile beroende på omfattningen du vill ha.