Android

Umask-kommando i Linux

Umask Linux Pro

Umask Linux Pro

Innholdsfortegnelse:

Anonim

På operativsystemene Linux og Unix opprettes alle nye filer med et standard sett med tillatelser. umask verktøyet lar deg vise eller angi opprettingsmasken for filmodus, som bestemmer tillatelsesbitene for nyopprettede filer eller kataloger.

Det brukes av mkdir, touch, tee og andre kommandoer som lager nye filer og kataloger.

Linux-tillatelser

Før du går videre, la oss kort forklare Linux-tillatelsesmodellen.

I Linux er hver fil tilknyttet en eier og en gruppe og tildelt tilgangsrettigheter for tre forskjellige klasser av brukere:

  • fileieren. gruppemedlemmene. alle andre.

Det er tre tillatelsestyper som gjelder for hver klasse:

  • lesetillatelsen. skrivetillatelsen. utfør tillatelsen.

Dette konseptet lar deg spesifisere hvilke brukere som har lov til å lese filen, skrive til filen eller utføre filen.

For å se filtillatelsene bruker du kommandoen 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ørste tegnet representerer filtypen som kan være vanlig fil ( - ), katalog ( d ), symbolsk lenke ( l ) eller annen spesiell filtype.

De neste ni tegnene representerer tillatelsene, tre sett med tre tegn hver. De første settene viser eierrettighetene, de andre gruppetillatelsene, og det siste settet viser alle andre tillatelser.

Tegn r med en oktal verdi på 4 står for lesing, w med en oktal verdi på 2 for skriving, x med en oktal verdi på 1 for å utføre tillatelse og ( - ) med en oktal verdi på 0 for ingen tillatelser.

Det er også tre andre spesielle filtillatelser: setuid , setgid og Sticky Bit .

I eksemplet over ( rwxr-xr-x ) betyr at eieren har lest, skrevet og utført tillatelser ( rwx ), gruppen og andre har lest og utført tillatelser.

Hvis vi representerer filtillatelsene ved å bruke en numerisk notasjon, kommer vi opp til tallet 755 :

  • Eier: rwx = 4+2+1 = 7 Gruppe: rx = 4+0+1 = 5 Annet: rx = 4+0+1 = 5

Når de er representert i numerisk notasjon, kan tillatelser ha tre eller fire oktale sifre (0-7). Det første sifferet representerer spesielle tillatelser, og hvis det utelates betyr det at det ikke er angitt noen spesielle tillatelser på filen. I vårt tilfelle er 755 det samme som 0755 . Det første sifferet kan være en kombinasjon av 4 for setuid , 2 for setgid og 1 for Sticky Bit .

Filtillatelser kan endres ved hjelp av chmod kommandoen og eierskap ved hjelp av chown kommandoen.

Forstå umask

Som standard, på Linux-systemer, er standardopprettelsestillatelser 666 for filer, noe som gir lese- og skrivetillatelse til bruker, gruppe og andre, og 777 for kataloger, som betyr å lese, skrive og utføre tillatelse til bruker, gruppe og andre. Linux tillater ikke at det opprettes en fil med utførte tillatelser.

Standard opprettelsestillatelser kan endres ved hjelp av umask verktøyet.

umask påvirker bare det nåværende skallmiljøet. På de fleste Linux-distribusjoner settes standard pam_umask.so hele pam_umask.so i pam_umask.so eller /etc/profile filen.

For å se gjeldende maskeverdi, skriv ganske enkelt umask uten noen argumenter:

umask

Utgangen vil omfatte

022

umask verdien inneholder tillatelsesbitene som IKKE vil bli satt på de nyopprettede filene og katalogene.

Som vi allerede har nevnt, er standardopprettelsestillatelser for filer 666 og for kataloger 777 . Hvis du vil beregne tillatelsesbitene til de nye filene, trekker du umask-verdien fra standardverdien.

For å beregne hvordan uname 022 vil påvirke nyopprettede filer og kataloger, bruker du for eksempel:

  • Filer: 666 - 022 = 644 . Eieren kan lese og endre filene. Group og andre kan bare lese filene. Kataloger: 777 - 022 = 755 755. Eieren kan cd inn i katalogen og liste lese, endre, opprette eller slette filene i katalogen. Group og andre kan cd inn i katalogen og liste og lese filene.

Du kan også vise maskeverdien i symbolsk notasjon ved å bruke alternativet -S :

umask -S

u=rwx, g=rx, o=rx

I motsetning til den numeriske notasjonen, inneholder den symboliske notasjonsverdien tillatelsesbitene som vil bli satt på de nyopprettede filene og katalogene.

Angi maskeverdien

Filopprettelsesmasken kan stilles inn ved hjelp av oktal eller symbolsk notasjon. For å gjøre endringene permanente, angir du den nye umask i en global konfigurasjonsfil som /etc/profile som vil påvirke alle brukere eller i en brukers skallkonfigurasjonsfiler som ~/.profile , ~/.bashrc eller ~/.zshrc som vil bare påvirke brukeren. Brukerfilene har forrang for de globale filene.

Før du gjør endringer i umask verdien, må du forsikre deg om at den nye verdien ikke utgjør en potensiell sikkerhetsrisiko. Verdier som er mindre restriktive enn 022 bør brukes med stor forsiktighet. For eksempel betyr umask 000 at alle vil lese, skrive og utføre tillatelse for alle nyopprettede filer.

La oss si at vi vil angi mer restriktive tillatelser for de nyopprettede filene og katalogene, slik at andre ikke vil kunne cd til katalogene og lese filer. Tillatelsene vi ønsker er 750 for kataloger og 640 for filer.

For å beregne umask verdien trekker du bare de ønskede tillatelsene fra standardverdien:

Umaskverdi: 777-750 = 027

Den ønskede umask representert i numerisk notasjon er 027 .

Hvis du vil stille den nye verdien permanent i hele systemet, åpne /etc/profile filen med tekstredigereren:

sudo nano /etc/profile

og endre eller legge til følgende linje i begynnelsen av filen:

/ Etc / profil

umask 027

For at endringer skal tre i kraft, kjør følgende source eller utlogging og logg inn:

source /etc/profile

For å bekrefte de nye innstillingene vil vi opprette en ny fil og katalog ved hjelp av mkdir og 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

En annen måte å stille inn filopprettelsesmasken er ved å bruke den symboliske notasjonen. For eksempel er umask u=rwx, g=rx, o= det samme som umask 027 .

Konklusjon

I denne guiden har vi forklart Linux-tillatelser og hvordan du bruker umask kommandoen til å angi tillatelsesbitene for nyopprettede filer eller kataloger.

For mer informasjon, skriv man umask i terminalen.

umask terminal