Android

Umask-kommando i Linux

Umask Linux Pro

Umask Linux Pro

Innehållsförteckning:

Anonim

På operativsystem Linux och Unix skapas alla nya filer med en standarduppsättning behörigheter. Med umask verktyget kan du visa eller ställa in skapningsmask för filläge, som bestämmer behörighetsbitar för nyskapade filer eller kataloger.

Det används av mkdir, touch, tee och andra kommandon som skapar nya filer och kataloger.

Linux-behörigheter

Innan vi går vidare, låt oss kort förklara Linux-behörighetsmodellen.

I Linux är varje fil associerad med en ägare och en grupp och tilldelas behörighetsbehörighet för tre olika klasser av användare:

  • filägaren. gruppmedlemmarna. alla andra.

Det finns tre behörighetstyper som gäller för varje klass:

  • lästillståndet. skrivtillståndet. utföra tillståndet.

Med detta koncept kan du ange vilka användare som får läsa filen, skriva till filen eller köra filen.

För att se filbehörigheterna använder du kommandot ls :

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

Det första tecknet representerar filtypen som kan vara vanlig fil ( - ), katalog ( d ), symbolisk länk ( l ) eller någon annan speciell filtyp.

De nästa nio tecknen representerar behörigheterna, tre uppsättningar med tre tecken vardera. De första uppsättningarna visar ägarbehörigheter, den andra gruppbehörigheterna, och den sista uppsättningen visar alla andra behörigheter.

Tecken r med ett oktalt värde på 4 står för läsning, w med ett oktalt värde på 2 för skrivning, x med ett oktalt värde på 1 för exekvering av tillstånd och ( - ) med oktalt värde på 0 för inga behörigheter.

Det finns också tre andra speciella setuid : setuid , setgid och Sticky Bit .

I exemplet ovan ( rwxr-xr-x ) betyder att ägaren har läst, skrivit och genomfört behörigheter ( rwx ), gruppen och andra har läst och genomfört behörigheter.

Om vi ​​representerar filtillståndet med en numerisk notation kommer vi upp till numret 755 :

  • Ägare: rwx = 4+2+1 = 7 Grupp: rx = 4+0+1 = 5 Övrigt: rx = 4+0+1 = 5

När de representeras i numerisk notation kan behörigheterna ha tre eller fyra oktala siffror (0-7). Den första siffran representerar de speciella behörigheterna och om den utelämnas betyder det att inga specialbehörigheter är inställda på filen. I vårt fall är 755 samma sak som 0755 . Den första siffran kan vara en kombination av 4 för setuid , 2 för setgid och 1 för Sticky Bit .

Filbehörigheter kan ändras med chmod kommandot och ägandet med hjälp av chown kommandot.

Förstå umask

Som standard på Linux-system är standardtillståndet 666 för filer, vilket ger läs- och skrivtillstånd för användare, grupp och andra, och 777 för kataloger, vilket innebär att läsa, skriva och utföra behörighet till användare, grupp och andra. Linux tillåter inte att en fil skapas med exekverande behörigheter.

Standardrättigheterna för skapande kan ändras med hjälp av umask verktyget.

umask påverkar endast den nuvarande skalmiljön. På de flesta Linux-distributioner ställs standardsystemets hela umaskvärde in i pam_umask.so eller /etc/profile filen.

Om du umask se det aktuella umask skriver du bara umask utan några argument:

umask

Utgången kommer att inkludera

022

umask innehåller behörighetsbitarna som INTE kommer att ställas in på de nyligen skapade filerna och katalogerna.

Som vi redan har nämnt är standardrättigheterna för filer 666 och för kataloger 777 . För att beräkna behörighetsbitarna för de nya filerna subtraheras umaskvärdet från standardvärdet.

För att beräkna hur uname 022 kommer att påverka nyskapade filer och kataloger använder du till exempel:

  • Filer: 666 - 022 = 644 . Ägaren kan läsa och ändra filerna. Group och andra kan bara läsa filerna.Kataloger: 777 - 022 = 755 755. Ägaren kan cd in i katalogen och lista läsa, ändra, skapa eller ta bort filerna i katalogen. Grupp och andra kan cd in i katalogen och lista och läsa filerna.

Du kan också visa maskvärdet i symbolisk notation med alternativet -S :

umask -S

u=rwx, g=rx, o=rx

Till skillnad från den numeriska notationen innehåller det symboliska notationsvärdet behörighetsbitar som kommer att ställas in på de nyligen skapade filerna och katalogerna.

Ställa in maskvärdet

Filskapningsmasken kan ställas in med oktal eller symbolisk notation. För att göra ändringarna permanent ställer du in det nya umask i en global konfigurationsfil som /etc/profile som kommer att påverka alla användare eller i en användares ~/.profile som ~/.profile , ~/.bashrc eller ~/.zshrc som kommer endast att påverka användaren. Användarfilerna har företräde framför de globala filerna.

Innan du gör ändringar i umask , se till att det nya värdet inte utgör en potentiell säkerhetsrisk. Värden som är mindre restriktiva än 022 bör användas med stor försiktighet. Till exempel betyder umask 000 att vem som helst har läst, skrivit och kört tillstånd för alla nyskapade filer.

Låt oss säga att vi vill ställa in mer restriktiva behörigheter för de nyligen skapade filer och kataloger så att andra inte kan cd till katalogerna och läsa filer. Behörigheterna vi vill ha är 750 för kataloger och 640 för filer.

För att beräkna umask helt enkelt de önskade behörigheterna från standardtillbehöret:

Umaskvärde: 777-750 = 027

Det önskade umask representerat i numerisk notation är 027 .

För att ställa in det nya värdet systemöver hela öppna /etc/profile med din textredigerare:

sudo nano /etc/profile

och ändra eller lägg till följande rad i början av filen:

/ Etc / profile

umask 027

För att ändringar ska träda i kraft kör följande källkommando eller utloggning och logga in:

source /etc/profile

För att verifiera de nya inställningarna kommer vi att skapa en ny fil och katalog med mkdir och touch :

mkdir newdir touch newfile

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

Ett annat sätt att ställa in filen för att skapa filer är att använda den symboliska notationen. Till exempel är umask u=rwx, g=rx, o= samma som umask 027 .

Slutsats

I den här guiden har vi förklarat Linux-behörigheterna och hur man använder umask kommandot för att ställa in behörighetsbitar för nyskapade filer eller kataloger.

För mer information, skriv man umask i din terminal.

umask terminal