Filtilladelser i Linux/Unix: Sådan læser, skriver og ændrer du

⚡ Smart opsummering

Filtilladelser i Linux og Unix styrer, hvem der kan læse, skrive og udføre hver fil, og beskytter et flerbrugersystem gennem to lag: ejerskab, som tildeler en bruger, gruppe og andre, og læse-, skrive- og udførelsestilladelsesbitsene.

  • 👥 Ejendomsret: Hver fil og mappe tilhører en bruger (ejer), en gruppe og andre, undertiden kaldet verden.
  • 🔑 Tilladelser: Tre tilladelser gælder for hver ejerklasse: læsning (r), skrivning (w) og udførelse (x).
  • 📃 liste: Kommandoen ls -l viser en tilladelsesstreng som f.eks. -rw-rw-r– for ejer, gruppe og verden.
  • 🔢 Absolut tilstand: En chmod med et trecifret oktalt tal sætter tilladelser for alle tre klasser på én gang, for eksempel 764.
  • Symbolsk tilstand: chmod med u, g, o, a og +, -, = ændrer én ejerklasse uden at røre de andre.
  • 🧭 Ejerskabskommandoer: Chown-kommandoen ændrer ejer og gruppe, mens chgrp kun ændrer gruppen.
  • 🤖 AI-hjælp: AI-assistenter og GitHub Copilot kan generere og forklare chmod- og chown-kommandoer.

Filtilladelser i Linux og Unix: hvordan man læser, skriver og ændrer

Filtilladelser i Linux og Unix bestemmer, hvem der må læse, ændre eller køre hver fil, hvilket holder et delt system med flere brugere sikkert. Denne side gennemgår fileierskab, læse-, skrive- og udførelsestilladelser samt de kommandoer, der ændrer dem.

Linux er en klon af Unix, flerbrugeroperativsystemet, der kan tilgås af mange brugere samtidigt. Linux kan også bruges på mainframes og servere uden nogen ændringer. Men dette giver anledning til sikkerhedsproblemer, da en uopfordret eller ondsindet bruger kan beskadige, ændre eller fjerne vigtige data. For effektiv sikkerhed opdeler Linux autorisation i to niveauer:

  • Ejerskab
  • Tilladelse

Konceptet med filtilladelser og ejerskab er afgørende i Linux. Her forklarer vi Linux-tilladelser og ejerskab og diskuterer dem begge. Lad os starte med ejerskab.

Linux-filejerskab

Hver fil og mappe på dit Unix/Linux-system er tildelt tre typer ejere, som vist nedenfor. Diagrammet nedenfor viser, hvordan ejerskab knyttes til brugeren, gruppen og andre.

Diagram over Linux-filejerskab, der viser bruger-, gruppe- og andre tilladelsesklasser

Bruger

En bruger er ejeren af ​​filen. Som standard bliver den person, der har oprettet en fil, dens ejer. Derfor kaldes en bruger også nogle gange for en ejer.

gruppe

A brugergruppe kan indeholde flere brugere. Alle brugere, der tilhører en gruppe, har de samme Linux-gruppetilladelser til filen. Antag, at du har et projekt, hvor et antal personer skal have adgang til en fil. I stedet for manuelt at tildele tilladelser til hver bruger, kan du tilføje alle brugerne til en gruppe og tildele gruppetilladelser til filen, så kun disse gruppemedlemmer og ingen andre kan læse eller ændre filerne.

Andet

Enhver anden bruger, der har adgang til en fil. Denne person har hverken oprettet filen eller tilhører en brugergruppe, der kan eje filen. Rent praktisk betyder det alle andre. Derfor kaldes det også at indstille tilladelser for verden, når du angiver tilladelser for andre.

Nu opstår det store spørgsmål: hvordan skelner Linux mellem disse tre brugertyper, så bruger 'A' ikke kan påvirke en fil, der indeholder vigtige oplysninger eller data fra en anden bruger 'B'? Det er ligesom ikke at ville have en kollega, der arbejder på din... Linux-computer for at se dine billeder. Det er her, tilladelser kommer ind i billedet, og de definerer brugeradfærd.

Lad os forstå tilladelsessystemet på Linux.

Linux -filtilladelser

Hver fil og mappe i dit Unix/Linux-system har følgende tre tilladelser defineret for alle tre ejere, der er omtalt ovenfor.

  • Læse: Denne tilladelse giver dig tilladelse til at åbne og læse en fil. Læsetilladelsen til en mappe giver dig mulighed for at vise dens indhold.
  • Skrive: Skrivetilladelsen giver dig tilladelse til at ændre indholdet af en fil. Skrivetilladelsen til en mappe giver dig tilladelse til at tilføje, fjerne og omdøbe filer, der er gemt i mappen. Forestil dig et scenario, hvor du har skrivetilladelse til en fil, men ikke har skrivetilladelse til den mappe, hvor filen er gemt. Du vil kunne ændre filens indhold, men du vil ikke kunne omdøbe, flytte eller fjerne filen fra mappen.
  • Udfør: In Windows, har et eksekverbart program normalt filtypenavnet ".exe", som du nemt kan køre. I Unix/Linux kan du ikke køre et program, medmindre udførelsestilladelsen er angivet. Hvis udførelsestilladelsen ikke er angivet, kan du muligvis stadig se eller ændre programkoden (forudsat at læse- og skrivetilladelser er angivet), men ikke køre den.

Lad os se på filtilladelser i Linux med eksempler. At køre ls -l på terminalen giver:

ls -l

Skærmbilledet nedenfor viser tilladelsesstrengen i en lang liste.

Terminal ls -l output, der viser tilladelsesstrengen rw-rw-r-- for en fil

Her har vi fremhævet '-rw-rw-r–', og det er denne mærkeligt udseende kode, der fortæller os om de Unix-tilladelser, der er givet til ejeren, brugergruppen og verden.

Her antyder det første '-', at vi har valgt en fil. Ikonet nedenfor markerer en almindelig fil.

Lille ikon, der angiver, at det anførte element er en almindelig fil

Ellers, hvis det var en mappe, ville der være blevet vist et 'd', som i listen nedenfor.

Terminalliste, der viser en mappe markeret med et indledende d i tilladelsesstrengen

Tegnene er ret nemme at huske.

  • r = læsetilladelse
  • w = skrivetilladelse
  • x = udførelsestilladelse
  • – = ingen tilladelse

Lad os se på det på denne måde. Den første del af koden er 'rw-'. Dette antyder, at ejeren 'Hjem' kan:

  • Læs filen
  • Skriv eller rediger filen

Ejeren kan ikke udføre filen, da execute-bitten er indstillet til '-'. Ikonet nedenfor viser execute-bitten nulstillet til en bindestreg.

Lille ikon, der viser udførelsestilladelsesbitten ryddet til en bindestreg

Mange Linux-distributioner som Fedora, CentOS og ... er designet til at ... Ubuntu Tilføj en bruger til en gruppe med samme navn som brugeren. Således tilføjes brugeren 'tom' til en gruppe med navnet 'tom'.

Den anden del er 'rw-'. Den er til brugergruppen 'Hjem', og gruppemedlemmer kan:

  • Læs filen
  • Skriv eller rediger filen

Den tredje del er for verden, hvilket betyder enhver bruger. Der står 'r–'. Det betyder, at brugeren kun kan:

  • Læs filen

Oversigten nedenfor knytter hver del af tilladelsesstrengen til ejeren, gruppen og verden.

Opdeling af tilladelsesstrengen rw-rw-r-- i ejer-, gruppe- og verdenssektioner

Ændring af fil-/mappetilladelser i Linux ved hjælp af kommandoen 'chmod'

Lad os sige, at du ikke ønsker, at en kollega skal se dine personlige billeder. Dette kan opnås ved at ændre filtilladelserne.

Vi kan bruge 'chmod' kommando, som står for 'ændringstilstand'. Ved hjælp af kommandoen kan vi indstille tilladelser (læse, skrive, udføre) på en fil eller mappe for ejeren, gruppen og verden.

Syntaks:

chmod permissions filename

Der er to måder at bruge kommandoen på:

  • Absolut tilstand
  • Symbolsk tilstand

Absolut (numerisk) tilstand i Linux

I denne tilstand repræsenteres filtilladelser ikke som tegn, men som et trecifret oktalt tal. Tabellen nedenfor viser numrene for alle tilladelsestyper.

nummer Tilladelsestype Symbol
0 Ingen tilladelse
1 Udfør -x
2 Skrive -W-
3 Udfør + Skriv -wx
4 Læs r-
5 Læs + Udfør rx
6 Læs + Skriv RW
7 Læs + Skriv + Udfør rwx

Lad os se chmod-kommandoen i aktion, som vist i terminalvinduet nedenfor.

Terminal kører chmod 764 på fileksemplet for at ændre dens tilladelser

I terminalvinduet ovenfor har vi ændret tilladelserne for filen 'sample' til '764'. Den absolutte kode '764' siger følgende:

  • Ejeren kan læse, skrive og udføre.
  • Brugergruppen kan læse og skrive.
  • Verden kan kun læse.

Dette vises som '-rwxrw-r–', som i resultatet nedenfor.

Terminalliste, der viser eksempelfilen med tilladelsesstrengen -rwxrw-r-- efter chmod 764

Sådan kan du ændre brugertilladelser i Linux på en fil ved at tildele et absolut tal.

Symbolsk tilstand i Linux

I absolut tilstand ændrer du tilladelser for alle tre ejere. I symbolsk tilstand kan du ændre tilladelserne for en bestemt ejer. Den bruger matematiske symboler til at ændre Unix-filtilladelserne.

OperaTor Beskrivelse
+ Tilføjer en tilladelse til en fil eller et bibliotek
- Fjerner tilladelsen
= Angiver tilladelsen og tilsidesætter de tilladelser, der er angivet tidligere

De forskellige ejere er repræsenteret som følger.

Bruger Betegnelser
u bruger / ejer
g gruppe
o Andet
a alle

Vi vil ikke bruge tilladelser i tal som 755, men i tegn som rwx. Lad os se på eksemplet nedenfor.

Terminal bruger symbolsk chmod med u, g, o og +, -, = til at ændre specifikke tilladelser

Ændring af ejerskab og gruppe i Linux

For at ændre ejerskabet af en fil eller mappe kan du bruge følgende kommando:

chown user filename

Hvis du vil ændre brugeren såvel som gruppen for en fil eller mappe, skal du bruge kommandoen:

chown user:group filename

Lad os se dette i aktion, som vist nedenfor.

Terminal der kører chown-kommandoen for at ændre ejeren og gruppen af ​​en fil

Hvis du kun vil ændre gruppeejeren, skal du bruge kommandoen:

chgrp group_name filename

'chgrp' står for change group. Skærmbilledet nedenfor viser chgrp-kommandoen i brug.

Terminal, der kører chgrp-kommandoen for kun at ændre gruppeejeren af ​​en fil

Tip

  • Filen /etc/group indeholder alle de grupper, der er defineret på systemet.
  • Du kan bruge kommandoen “grupper” til at finde alle de grupper, du er medlem af, som vist nedenfor.

Terminalen kører groups-kommandoen for at liste de grupper, som brugeren tilhører

  • Du kan bruge kommandoen newgrp til at arbejde som medlem af en anden gruppe end din standardgruppe, som vist nedenfor.

Terminal kører newgrp-kommandoen for at skifte til en anden gruppe

  • Du kan ikke have to grupper, der ejer den samme fil.
  • Du har ikke indbyggede grupper i Linux. En gruppe kan ikke være en undergruppe af en anden.
  • x — at udføre en mappe betyder at have tilladelse til at "gå ind i" en mappe og muligvis få adgang til undermapper.
  • Der er andre tilladelser, du kan indstille på filer og mapper, som vil blive dækket i en senere avanceret vejledning.

Ofte Stillede Spørgsmål

Tilføj udførelsestilladelsen med chmod. Den symbolske form chmod +x script.sh giver alle tilladelse til at udføre funktionen, mens chmod u+x script.sh kun giver den til ejeren. Derefter kan du køre scriptet direkte med ./script.sh fra dets mappe.

umask angiver standardtilladelserne, der fjernes fra nyoprettede filer og mapper. Filer starter fra 666 og mapper fra 777, hvorefter umask-værdien er subtracted. En almindelig umask på 022 giver filer 644 og mapper 755. Kør umask for at se den aktuelle værdi.

Disse er særlige tilladelsesbits. setuid kører et program med dets ejers rettigheder, setgid kører det med gruppens rettigheder eller får nye filer til at arve en mappegruppe, og sticky-bitten tillader kun en fils ejer at slette den i en delt mappe som f.eks. /tmp.

Ja. Kun root-brugeren, eller en bruger der kører sudo, kan ændre en fils ejer med chown. En almindelig ejer kan overdrage sin fil til en gruppe de tilhører, men at tildele den til en anden bruger kræver root-rettigheder af sikkerhedsmæssige årsager.

Den fejl betyder, at du mangler rettighederne til at ændre filen. For at køre chmod skal du eje filen eller være root; for at køre chown skal du generelt bruge root. Sæt sudo foran kommandoen, eller skift til filens ejer, og prøv igen.

Brug den rekursive -R-indstilling. chmod -R 755 myfolder anvender tilladelserne til mappen og alle filer og undermapper i den, og chown -R bruger:gruppe myfolder gør det samme for ejerskab. Brug -R forsigtigt, da det påvirker alle elementer under mappen.

AI-assistenter kan oversætte en anmodning som "gør dette script eksekverbart kun for mig" til den rigtige chmod-kommando, forklare, hvad en tilstand som 755 betyder, og advare om risikable indstillinger som 777. Maskinlæringssikkerhedsværktøjer markerer også filer, hvis tilladelser ser farligt åbne ud.

Ja. GitHub Copilot kan foreslå chmod-, chown- og chgrp-kommandoer fra en kort kommentar, der beskriver de ønskede tilladelser eller ejerrettigheder, og udfylde dem, mens du skriver. RevSe hvert forslag, før du kører det, da ændringer i tilladelser og ejerskab påvirker sikkerheden.

Opsummer dette indlæg med: