Hjemmeside » hvordan » Hvordan virker Linux-filtilladelser?

    Hvordan virker Linux-filtilladelser?

    Hvis du har brugt Linux i nogen tid (og endda OS X), har du sandsynligvis stødt på en "tilladelsesfejl". Men hvad er de præcist, og hvorfor er de nødvendige eller nyttige? Lad os tage et indvendigt udseende.

    Bruger tilladelser

    Tilbage på dagen var computere massive maskiner, der var utroligt dyre. For at få mest muligt ud af dem blev flere computerterminaler tilsluttet, hvilket gjorde det muligt for mange brugere at gå om deres forretning samtidigt. Databehandling og opbevaring blev udført på maskinen, mens terminalerne selv var lidt mere end et middel til visning og indlæsning af data. Hvis du tænker på det, er det stort set, hvordan vi får adgang til data på "skyen"; se på Amazon's Cloud MP3-system, Gmail og Dropbox, og du vil bemærke, at mens ændringer kan foretages lokalt, gemmes alt eksternt.

    (Billede: Zenith Z-19 "dum" terminal; kredit: ajmexico)

    For at dette skal fungere, skal de enkelte brugere have konti. De skal have en del af opbevaringsområdet tildelt dem, og de skal have lov til at køre kommandoer og programmer. Alle får specifikke "brugerrettigheder", som dikterer, hvad de kan og ikke kan gøre, hvor i systemet de gør og ikke har adgang, og hvis filer de kan og ikke kan ændre. Hver bruger er også placeret i forskellige grupper, som giver eller begrænser yderligere adgang.

    Filadgang

    I denne skæve multi-user verden har vi allerede oprettet grænser for, hvad brugere kan gøre. Men hvad med hvad de har adgang til? Nå har hver fil et sæt tilladelser og en ejer. Ejerbetegnelsen, der typisk er bundet, når filen oprettes, erklærer, hvilken bruger den tilhører, og kun den bruger kan ændre sine adgangsrettigheder.

    I Linux-verdenen er tilladelser opdelt i tre kategorier: læs, skriv og udfør. "Læs" -adgang gør det muligt for en at se en fils indhold, "skrive" -adgang giver mulighed for at ændre en fils indhold, og "execute" gør det muligt for en at køre et sæt instruktioner, som et script eller et program. Hver af disse kategorier anvendes til forskellige klasser: bruger, gruppe og verden. "Bruger" betyder ejeren, "gruppe" betyder enhver bruger, der er i samme gruppe som ejeren, og "verden" betyder enhver og alle.

    Mapper kan også begrænses med disse tilladelser. Du kan f.eks. Tillade andre i din gruppe at se mapper og filer i din hjemmemappe, men ikke nogen uden for din gruppe. Du vil sandsynligvis gerne begrænse "skrive" adgang til kun dig selv, medmindre du arbejder på et fælles projekt af en slags. Du kan også oprette en delt mappe, der gør det muligt for nogen at se og ændre filer i den mappe.

    Ændring af tilladelser i Ubuntu

    GUI

    For at ændre tilladelserne for en fil, du ejer i Ubuntu, skal du højreklikke på filen og gå til "Egenskaber".

    Du kan ændre, om ejeren, gruppen eller andre kan læse og skrive, læse eller gøre ingenting. Du kan også tjekke en boks for at tillade udførelse af filen, og det vil aktivere det for ejeren, gruppen og andre samtidig.

    Kommandolinje

    Du kan også gøre dette via kommandolinjen. Gå til en mappe, der har filer i den, og skriv følgende kommando for at se alle filer på en liste:

    ls -al

    Ved siden af ​​hver fil og mappe ses en særlig sektion, der beskriver de tilladelser, den har. Det ser sådan ud:

    -rwxrw-r-

    Det r står for "læs", den w står for "skrive" og x står for "execute." Directories vil starte med en "d" i stedet for en "-". Du vil også bemærke, at der er 10 mellemrum, som holder værdi. Du kan ignorere den første, og så er der 3 sæt 3. Det første sæt er til ejeren, det andet sæt er til gruppen, og det sidste sæt er for verden.

    For at ændre en fil eller en mappes tilladelser, lad os se på den grundlæggende form for chmod-kommandoen.

    chmod [klasse] [operatør] [tilladelse] fil

    chmod [ugoa] [+ eller -] [rwx] fil

    Dette kan måske virke kompliceret først, men tro mig, det er ret nemt. Lad os først se på klasserne:

    • u: Dette er for ejeren.
    • g: Dette er for gruppen.
    • o: Dette er for alle andre.
    • a: Dette vil ændre tilladelser for alle ovenstående.

    Derefter operatørerne:

    • +: Plustegnet vil tilføje de tilladelser, der følger.
    • -: Minustegnet fjerner tilladelserne som følger.

    Stadig hos mig? Og det sidste afsnit er det samme, som når vi kontrollerede tilladelserne til en fil:

    • r: Tillader læseadgang.
    • w: Tillader skriveadgang.
    • x: Tillader udførelse.

    Lad os nu lægge det sammen. Lad os sige, at vi har en fil med navnet "todo.txt", der har følgende tilladelser:

    -rw-rw-r-

    Det vil sige, ejeren og gruppen kan læse og skrive, og verden kan kun læse. Vi ønsker at ændre tilladelserne til disse:

    -rwxr-

    Det vil sige, ejeren har fuld tilladelse, og gruppen kan læse. Det kan vi gøre i 3 trin. Først tilføjer vi tilladelsen til udførelse af brugeren.

    chmod u + x todo.txt

    Så fjerner vi skrive tilladelsen til gruppen.

    chmod g-w todo.txt

    Endelig fjerner vi læsetilladelserne for alle andre brugere.

    chmod o-r todo.txt

    Vi kan også kombinere disse i én kommando, som sådan:

    chmod u + x, g-w, o-r todo.txt

    Du kan se, at hver sektion er adskilt af kommaer, og der er ingen mellemrum.

    Her er nogle nyttige tilladelser:

    • -rwxr-xr-x: Ejeren har fuld tilladelse, gruppe og andre brugere kan læse filindhold og udføre.
    • -rwxr-r-: Ejeren har fuld tilladelser, gruppe og andre brugere kan kun læse fil (nyttigt, hvis du ikke har noget imod andre, der ser dine filer.
    • -rwx-: Ejeren har fuld tilladelse, alle andre har ingen (nyttig til personlige scripts).
    • -rw-rw--: Ejer og gruppe kan læse og skrive (nyttigt til samarbejde med gruppemedlemmer).
    • -rw-r-r-: Ejer kan læse og skrive, gruppe og andre brugere kan kun læse fil (nyttig til lagring af personlige filer på et delt netværk).
    • -rw--: Ejer kan læse og skrive, alle andre har ingen (nyttig til lagring af personlige filer).

    Der er et par andre ting, du kan gøre med chmod-like setuid og setgid - men de er lidt dybdegående, og de fleste brugere behøver ikke rigtig at bruge dem alligevel.

    Root- eller Super-User og System Files

    I dag kører vi ikke altid systemer, der har flere brugere. Hvorfor skulle vi stadig bekymre os om tilladelser?

    Nå, Unix og dets derivater - Linux, OS X, blandt andet - skelner også mellem ting, der køres af brugeren, ting der drives af en administrator eller med administratorrettigheder, og ting kører af selve systemet. Som sådan er ting, der er integrerede for systemet, brug for administratorrettigheder, der skal ændres eller åbnes. På denne måde knuser du ikke noget ved et uheld.

    I Ubuntu, for at foretage ændringer i systemfiler bruger du "sudo" eller "gksudo" for at få tilsvarende administratorrettigheder. I andre distroer skifter du til "root" eller "super-user", som effektivt gør det samme, indtil du logger ud.

    Vær opmærksom på, at ændring af filtilladelser under begge omstændigheder kan føre til, at programmer ikke virker, uafhaengigt skifter filejerskab til root-brugeren (i stedet for ejeren) og gør systemet mindre sikkert (ved at give flere tilladelser). Som sådan anbefales det, at du ikke ændrer tilladelser til filer - især systemfiler - medmindre det er nødvendigt, eller du ved hvad du laver.


    Filtilladelser er på plads for at give et grundlæggende sikkerhedssystem blandt brugerne. At lære, hvordan de fungerer, kan hjælpe dig med at oprette grundlæggende deling i et multifunktionsmiljø, beskytte "offentlige" filer og give dig et fingerpeg om, når noget går galt med systemfilens ejerskab.

    Tænk du kan forklare tingene lettere? Har du en rettelse? Vil du gerne mindes om de gamle dage? Tag en pause og sæt dine tanker ned i kommentarerne.